@ConditionalOnBean 配置了某个特定Bean
@ConditionalOnMissingBean 没有配置特定的Bean
@ConditionalOnClass Classpath里有指定的类
@ConditionalOnMissClass Classpath里没有指定的类
@ConditionalOnExpression 给定的Spring Expression Language(SpEL)表达式计算结果为true
@ConditionalOnJava JAVA的版本匹配特定值火一个范围值
@ConditionalOnProperty 指定的配置属性要有一个明确的值
@ConditionalOnResource Classpath里要有指定的资源
@ConditionalOnWebApplication 这是一个Web应用程序
@ConditionalOnNotWebApplication 这不是一个Web应用程序
eg:JdbcTemplateAutoConfiguration
1、可以加载到DateSource和JdbcTemplate俩个class类
2、可以获取单一的DataSource的Bean实例
3、自动加载的排序,在DataSource自动装配之后
4、根据属性配置文件构建JdbcProperties对象