进修和应用 Spring Boot 有一些工夫了,你们对 Spring Boot 注解知道有若干呢?明天栈长我给大年夜大年夜家清算了 Spring Boot 最中间的 25 个注解,都是干货!
你所需具有的根基Spring Boot 最中间的 25 个注解
这是 Spring Boot 最最最中间的注解,用在 Spring Boot 主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项才调。
其实这个注解就是@SpringBootConfiguration
、@EnableAutoConfiguration
、@ComponentScan
这三个注解的组合,也能够用这三个注解来替代@SpringBootApplication
注解。
许可 Spring Boot 主动设备注解,开启这个注解以后,Spring Boot 就可以根据今后类路子下的包或许类来设备 Spring Bean。
如:今后类路子下有 Mybatis 这个 JAR 包,MybatisAutoConfiguration
注解就可以根据相干参数来设备 Mybatis 的各个 Spring Bean。
3、@Configuration
这是 Spring 3.0 添加的一个注解,用来替代 applicationContext.xml 设备文件,一切这个设备文件外面能做到的任务都可以经过过程这个注解地址类来遏制注册。
这个注解就是 @Configuration 注解的变体,只是用来润色是 Spring Boot 设备罢了,或许可利于 Spring Boot 后续的扩大。
这是 Spring 3.1 添加的一个注解,用来替代设备文件中的 component-scan 设备,开启组件扫描,即主动扫描包路子下的 @Component 注解遏制注册 bean 实例到 context 中。
前面 5 个注解可以在这篇文章《Spring Boot 最中间的 3 个注解详解》中知道更多细节的。
6、@Conditional
这是 Spring 4.0 添加的新注解,用来标识一个 Spring Bean 或许 Configuration 设备文件,当满足指定的前提才开启设备。
7、@ConditionalOnBean
组合@Conditional
注解,当容器中有指定的 Bean 才开启设备。
8、@ConditionalOnMissingBean
组合@Conditional
注解相反,当容器中没有指定的 Bean 才开启设备。组合@Conditional
注解,当容器中有指定的 Class 才开启设备。
10、@ConditionalOnMissingClass
组合@Conditional
注解相反,当容器中没有指定的 Class 才开启设备。组合@Conditional
注解,今后项目类型是 WEB 项目才开启设备。
今后项目有以下 3 种类型。
enum Type {/*** Any web application will match.*/ANY,/*** Only servlet-based web application will match.*/SERVLET,/*** Only reactive-based web application will match.*/REACTIVE}
12、@ConditionalOnNotWebApplication
组合@Conditional
注解相反,今后项目类型不是 WEB 项目才开启设备。组合@Conditional
注解,当指定的属性有指定的值时才开启设备。
14、@ConditionalOnExpression
组合注解,当 SpEL 表达式为 true 时才开启设备。
15、@ConditionalOnJava
组合@Conditional
注解,当运转的 Java JVM 在指定的版本范围时才开启设备。
16、@ConditionalOnResource
组合@Conditional
注解,当类路子下有指定的本钱才开启设备。
17、@ConditionalOnJndi
组合@Conditional
注解,当指定的 JNDI 存在时才开启设备。
18、@ConditionalOnCloudPlatform
组合@Conditional
注解,当指定的云平台激活时才开启设备。
19、@ConditionalOnSingleCandidate
组合@Conditional
注解,当指定的 class 在容器中只要一个 Bean,或许同时有多个但为首选时才开启设备。
用来加载额外的设备(如 .properties 文件),可用在@Configuration
注解类,或许@Bean
注解编制下面。
关于这个注解的用法可以参考《 Spring Boot读取设备的几种编制》这篇文章。
21、@EnableConfigurationProperties
通俗要合营@ConfigurationProperties
注解应用,用来开启对注解设备 Bean 的撑持。
用在主动设备类下面,暗示该主动设备类需要在别的指定的主动设备类设备完以后。
如 Mybatis 的主动设备类,需要在数据源主动设备类以后。
@AutoConfigureAfter(DataSourceAutoConfiguration.class)public class MybatisAutoConfiguration {
23、@AutoConfigureBefore
@AutoConfigureAfter
注解应用相反,暗示该主动设备类需要在别的指定的主动设备类设备之前。
24、@Import
这是 Spring 3.0 添加的新注解,用来导入一个也很多个@Configuration
注解润色的类,这在 Spring Boot 外面应用很多。
25、@ImportResource
这是 Spring 3.0 添加的新注解,用来导入一个也很多个 Spring 设备文件,这对 Spring Boot 兼容老项目异常有效,因为有些设备没法经过过程 Java Config 的情势来设备就只能用这个注解来导入。