Springboot现在应该已经被大多数公司所使用了,尤其是其采用配置代替XML的形式简化了很多代码的编写,但是其到底拥有哪些配置项,还是需要花点时间好好看一下,所以我整理了一份Springboot的特性配置,希望对你有用。
@SpringBootApplication以及新注解
用过Springboot的肯定见过一个配置项@SpringBootApplication
也就是在启动项上必须添加的一个配置。
其实光这一配置项里就已经包含了很多配置项,如图所示:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
这三个都是元注解,所谓元注解就是给注解的注解。
Target 修饰Annotation所修饰的对象范围,Retention 修饰注解的生命的周期,Documented 说明这个注解会被 javadoc工具记录。由于这些一般都不会动它,就一带而过
- @SpringBootConfiguration
@SpringBootConfiguration 是表明该类是一个配置类,可以看出它就是@Configuration的作用,只是它是属于Springboot的而@Configuration 是属于Spring。 - @EnableAutoConfiguration
就是因为其中有AutoConfigurationImportSelector这个类才可以实现将符合条件(因为autoconfigure中提供很多的条件加载Configuration,具体可以看下面)的所有用@Configuration修饰的都加载到当前IOC容器中。
org.springframework.boot.autoconfigure 下还提供了很多注解,当使用这个注解时只有满足各自的条件才会注册到容器中。
由于很多,但是并没有多用到,这里只说一些较为常用的或者是自己用过到的。
- ConditionOnBean 是指容器中已经存在Bean才生效,ConditionOnMissBean 对应就是不存在生效
- ConditionOnClass 是指classpath 存在该类的时候生效 ConditionOnMissClass 同样就是不存在的时候生效
- ConditionOnExpression 是指SpEL表达式结果为true时生效
- ConditionalOnProperty(name = “”, havingValue = “”) 里面的参数设置值一样时生效
- ConditionalOnSingleCandidate 是指容器中存在一个该该类型的Bean生效
总结
以上都是个人日常学习的记录笔记,手敲不易,多多点赞。
也欢迎各位大牛的指点。