Spring Boot中常用的三个注解
-
注解配置截图:
@SpringBootConfiguration
这个注解就是根据 @Configuration 注解演化而来的,二者功能也一致,标注当前类是配置类。
@Configuration
org.springframework.context.annotation.Configuration
这是 Spring 3.0 添加的一个注解,用来代替 applicationContext.xml 配置文件。
备注:以上两个注解会将当前类内声明的一个或多个以 @Bean 注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名,见下图。
@ComponentScan
org.springframework.context.annotation.ComponentScan
这是 Spring 3.1 添加的一个注解,用来代替配置文件中的 component-scan 配置,开启组件扫描,即自动扫描包路径下注解所修饰的对象进行注册到容器中。
备注:
– 默认扫描@SpringBootApplication所在类的同级目录和它的子目录,注册 bean 实例到容器中。
– 在实际的开发中,我们可能不需要某一项进行自动配置,只需要添加@SpringBootApplication(exclude = {RabbitAutoConfiguration.class})
@EnableAutoConfiguration
org.springframework.boot.autoconfigure.EnableAutoConfiguration
启动自动配置,该注解会使Spring Boot根据项目中配置的依赖,自动配置所需的依赖jar包:比如:我们添加了spring-boot-starter-web配置,Spring Boot会自动配置tomcat、Spring MVC等;
备注:
看全路径就知道,Spring Boot 的注解,用来提供自动配置,上面的两个都是 spring-context 包下的,不属于 Spring Boot,所以 Spring 3.0 之后的去 XML 配置方式已经为 Spring Boot 埋下了伏笔!
@SpringBootApplication
此注解是一个复合注解,包括@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration 。