Spring boot 使用也需要搭配 Spring 使用 ,Spring 常用的注解
Spring 注解
1.@Configuration
@Configuration 注解用戶定義配置類,可替換xml 文件,被注解的類包含一個或者多個 @Bean 注解的方法,這些方法將被 ,用於構建Bean ,初始化Spring 容器
2.@ComponentScan
常用的注解 @Controller @Service @Repository ,有一個共同的注解 @Component ,@ComponentScan 標注的就會掃描這些注解標注的類到Spring 容器中
@SpringBootApplication 注解就包含了 @ComponentScan 注解,即不用再添加掃描注解【@EnableAutoConfiguration @ComponentScan @SpringBootConfiguration】
3.@Conditional
@Conditional 是 Spring 4 提供的注解,通過@Conditional 注解可以根據設置的條件裝載不同的bean ,Springboot 注解中的 @ConditionalOnProperty @ConditionalOnBean 等以@Conditional*
開頭的注解,都是通過集成了 @Conditional 來實現相應的功能的
4.@Import
通過導入的方式把實例加入到Spring IOC 容器中
5.@ImportResource
與 @Import 類似,區別是 @ImportResource 導入的是配置文件
6.@Component
@Component 是一個元注解,帶有該注解的類被看作組件,當基於注解的類路徑掃描的時候,這些類就會被實例化
Spring boot 核心注解
1. @SpringBootApplication
是SpringBoot 的最核心的注解,在spring boot 的主類上,標識 是SpringBoot 應用,用來開啟SpringBoot 的各項能力。由@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan 三個注解組成。這三個注解是一起使用,
所以spring boot提供了一個統一的注解 @SpringBootApplication
2.@EnableAutoConfiguration
允許Springboot 自動裝配,開啟改注解,Spring boot 就能根據當前類路徑下的包或者類來配置 Spring Bean
例如:當前類路徑下有 Mybatis 的 JAR 包,MybatisAutoConfiguration 注解就能根據相關的參數來配置Mybatis 的各個Spring Bean
@EnableAutoConfiguration 實現的關鍵在於引入了AutoConfigurationImportSelector ,其核心邏輯為 selectImports 方法,
- 從配置文件 MATA-INF/spring.factories 加載所有可能用到的自動裝配類
- exclude excludeName 屬性攜帶的類排除
- 過濾,將滿足條件 @Conditional 的自動配置類返回
3.@SpringBootConfiguration
改注解就是 @Configuration 注解的變體,用來修改SpringBoot 配置
4.@ConditionalOnBean
@ConditionalOnBean(A.class) 當前上下文存在A對象時,才會實例化一個 Bean ,也就是只有A.class ,在 Spring 的 上下文中時,當前的 bean 才能夠創建
5.@ConditionalOnMissingBean
與上述相反,當缺失某個 bean 才會創建當前的bean
6.@ConditionalOnClass
當且僅當某些類存在於 classpath 上,才會創建某個 bean
7.@ConditionalOnMissingClass
與上述相反,當前僅當classpath 不存在指定的Class 才會開啟配置
8.@ConditionalOnProperty
指定的屬性有指定的值才開啟配置,通過屬性 name 以及havingValue ,其中 name 用 application.properties 中讀取某個屬性的值
9.@ConditionalOnResource
classpath 類路徑下有指定的資源才會開啟配置
10.@PropertySource(“”)
指定配置文件路徑
11.@ConfigurationProperties(prefix = "前綴")
指定配置文件前綴