@SpringBootApplication注解组成
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@SpringBootApplication注解组成相关的知识,希望对你有一定的参考价值。
参考技术A @Inherited:子类可以继承父类的被@Inherited修饰的注解
@ComponentScan:默认会扫描该类所在的包下所有的配置类
@SpringBootConfiguration:@SpringBootConfiguration注解的作用与@Configuration注解相同
@EnableAutoConfiguration :从classpath中搜索所有 META-INF/spring.factories配置文件。然后,将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration key对应的配置项加载到spring容器。
@SpringBootApplication注解:
@EnableAutoConfiguration注解:
@AutoConfigurationPackage注解:
@SpringBootApplication注解
之前用户使用的是3个注解注解他们的main类。分别是@Configuration,@EnableAutoConfiguration,@ComponentScan。由于这些注解一般都是一起使用,spring boot提供了一个统一的注解@SpringBootApplication。
@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。
1
2
3
4
5
6
|
@SpringBootApplication public class ApplicationMain { public static void main(String[] args) { SpringApplication.run(Application. class , args); } } |
分开解释@Configuration,@EnableAutoConfiguration,@ComponentScan。
1、@Configuration:提到@Configuration就要提到他的搭档@Bean。使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。
1
2
3
4
5
6
|
<beans> <bean id = "car" class = "com.test.Car" > <property name= "wheel" ref = "wheel" ></property> </bean> <bean id = "wheel" class = "com.test.Wheel" ></bean> </beans> |
相当于:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@Configuration public class Conf { @Bean public Car car() { Car car = new Car(); car.setWheel(wheel()); return car; } @Bean public Wheel wheel() { return new Wheel(); } } |
@Configuration的注解类标识这个类可以使用Spring IoC容器作为bean定义的来源。@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean。
2、@EnableAutoConfiguration:能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。
3、@ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。
以上是关于@SpringBootApplication注解组成的主要内容,如果未能解决你的问题,请参考以下文章
Springboot系列:@SpringBootApplication注解
springboot情操陶冶-@SpringBootApplication注解解析
Spring编程:springboot @SpringBootApplication注解
SpringBoot系列之启动流程3-自动装配与@SpringBootApplication注解