springboot实现自动装配的核心还是使用标签,以下是我们常用的注解标签:
@SpringBootApplication
是 springboot 核心注解,其中包含 @SpringBootConfiguration,@EnableAutoConfiguration, @ComponentScan.
@ComponentScan
它默认扫描的是与该类同级的类或者同级包下的所有类.
@SpringBootConfiguration
通过源码得知它是一个@Configuration,相当于之前的配置文件功能.
@EnableAutoConfiguration
是这里最重要的注解,它实现了对 Spring Boot应用自动装配的功能。@EnableAutoConfiguration 是利用SpringFactoriesLoader 机制加载自动装配配置的,它的配置数据在META-INF/spring.factories 中,我们打开 spring-boot-autoconfigure jar 中的该文件,发现对应着许多个 XXXAutoConfiguration 配置类.
@Configuration
加入@Configuration 注解,表明这就是一个配置类。有一个 myBean()的方法
并用@Bean 进行注释,返回一个 MyBean()的实例,表明这个方法是需要被
Spring 进行管理的 bean。@Bean 如果不指定名称的话,默认使用 myBean
名称,也就是小写的名称。
@Bean
相当于 XML 中的<bean></bean>,放在方法的上面,而不是类,意思是产生一
个 bean,并交给 spring 管理。
ConfigurationParperties 和bean 注解的一些理解:
@ConfigurationProperties(prefix = "user" )
标签加在 User类中,会将在配置文件中赋的值注入user对象,别处在创建User对象时就会使用这个赋值。
@Bean 作用相当于 <bean id="" class=""> 。是作用在方法上的 , 方法中会产生一个对象,最终把此对象交给spring容器管理,注意此对象返回值就需要是你需要是spring管理的对象。
二者结合: