SpringBoot启动类的三大注解是什么?
在SpringBoot中,我们可以通过添加一些注解来简化项目的配置和开发,最常用的三个注解分别是@SpringBootApplication、@EnableAutoConfiguration和@ComponentScan,下面我们将详细介绍这三个注解的作用及其使用方法。
@SpringBootApplication注解
1、作用:@SpringBootApplication是SpringBoot的核心注解,它表示这是一个SpringBoot应用程序的启动类,当一个类上添加了这个注解后,SpringBoot会自动完成以下配置:
启用基本的自动配置;
设置应用名称;
注册默认的异常处理;
开启组件扫描。
2、使用方法:在启动类上添加@SpringBootApplication注解即可。
示例代码:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
@EnableAutoConfiguration注解
1、作用:@EnableAutoConfiguration是SpringBoot的一个核心注解,它用于开启自动配置功能,当一个类上添加了这个注解后,SpringBoot会根据项目中的依赖关系自动配置相应的Bean,如果项目中引入了Web依赖,那么SpringBoot会自动配置Tomcat、DispatcherServlet等组件。
2、使用方法:在启动类上添加@EnableAutoConfiguration注解即可,通常情况下,我们不需要显式地指定要启用哪些自动配置,因为SpringBoot会自动识别并加载相关的配置类,但在某些特殊场景下,我们可以通过指定exclude属性来排除不需要的自动配置。
示例代码:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; @EnableAutoConfiguration @ComponentScan(exclude = {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration"}) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
@ComponentScan注解
1、作用:@ComponentScan是Spring框架的一个核心注解,它用于开启组件扫描功能,当一个类上添加了这个注解后,SpringBoot会自动扫描当前包及其子包下的所有类,并将这些类注册为Bean,这样,我们就可以在其他地方通过依赖注入的方式使用这些Bean了。
2、使用方法:在启动类或者配置类上添加@ComponentScan注解即可,通常情况下,我们会在启动类上添加这个注解,以便让SpringBoot自动扫描并注册所有的Bean,如果需要对扫描范围进行限制,可以通过指定basePackages属性来实现,我们还可以使用includeFilters和excludeFilters属性来过滤需要扫描的类。
示例代码:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.FilterType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.function.Function; @EnableAutoConfiguration @ComponentScan(basePackages = "com.example", includeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = Controller.class), excludeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = WebMvcConfigurer.class)) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
相关问题与解答:
1、@SpringBootApplication注解是否可以替换为@Configuration、@EnableAutoConfiguration和@ComponentScan这三项注解?答:不能直接替换,因为@SpringBootApplication注解已经包含了@Configuration、@EnableAutoConfiguration和@ComponentScan这三项注解的功能,所以无需再单独添加这三项注解,如果你想要自定义某个Bean的创建过程,可以在启动类上单独添加@Configuration注解。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/229094.html