Spring boot 梳理 - @Conditional
@Conditional(TestCondition.class)
这句代码可以标注在类上面,表示该类下面的所有@Bean都会启用配置,也可以标注在方法上面,只是对该方法启用配置。
spring框架还提供了很多@Condition给我们用,当然总结用语哪种好理解,看给位读者喽
@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)
@ConditionalOnClass : classpath中存在该类时起效
@ConditionalOnMissingClass : classpath中不存在该类时起效
@ConditionalOnBean : DI容器中存在该类型Bean时起效
@ConditionalOnMissingBean : DI容器中不存在该类型Bean时起效
@ConditionalOnSingleCandidate : DI容器中该类型Bean只有一个或@Primary的只有一个时起效
@ConditionalOnExpression : SpEL表达式结果为true时
@ConditionalOnProperty : 参数设置或者值一致时起效
@ConditionalOnResource : 指定的文件存在时起效
@ConditionalOnJndi : 指定的JNDI存在时起效
@ConditionalOnJava : 指定的Java版本存在时起效
@ConditionalOnWebApplication : Web应用环境下起效
@ConditionalOnNotWebApplication : 非Web应用环境下起效
@Configuration
@ConditionalOnWebApplication(
type = Type.SERVLET
)
@ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
@AutoConfigureOrder(-)
@AutoConfigureAfter({DispatcherServletAutoConfiguration.class, ValidationAutoConfiguration.class})
public class WebMvcAutoConfiguration {
...猜测,Spring boot 在此处加载 application.properties 中关于MVC的默认配置;如果@Conditional返回false,则该配置类不执行
}
最新文章
- HttpWebRequest向路由器提交基本身份验证
- C#编程总结(十三)数据压缩
- C#开发和调用Web Service
- hdu Hike on a Graph
- Linux64位服务器编译安装MySQL5.6(CentOS6.4)
- 查看Linux系统网卡信息
- CodeForces 527B
- LeetCode解题报告:Insertion Sort List
- android 强制设置横屏 判断是横屏还是竖屏
- java.util.ArrayList、java.util.vector和java.util.LinkedList (JDK 1.8.0_111)
- LeetCode - 185. Department Top Three Salaries
- IMDb、烂番茄、MTC、各种电影行业评分名字整理
- 《React Native 精解与实战》书籍连载「配置 iOS 与 Android 开发环境」
- python中$和@基础笔记
- [P2119]魔法阵 (模拟?搜索?)
- Android应用安全之脆弱的加密
- 如何安装docker-compose
- 第一个map reduce程序
- Specify Computed Columns in a Table
- SQLSERVER 内存占用高的处理方式