SpringBoot 1.5.12.RELEASE 版本
 
已为例JdbcTemplate 为例。
spring-boot-autoconfigure-1.5.12.RELEASE.jar!\org\springframework\boot\autoconfigure\jdbc\JdbcTemplateAutoConfiguration.class
 
地方
springBoot自动化配置
 
1.1.1 @Configuration
    表明是一个配置类,和以前编写的配置文件一样。注解引用@Component给容器中添加组件
 
1.1.2 @ConditionalOnClass({DataSource.class, JdbcTemplate.class})
    DataSource、JdbcTemplate在应用的classpath上时才开启自动配置
部分condition条件
@ConditionalOnBean:
当容器里有指定Bean的条件下
@ConditionalOnClass:
当类路径下有指定类的条件下
@ConditionalOnExpression:
基于SpEL表达式作为判断条件
@ConditionalOnJava:
基于JV版本作为判断条件
@ConditionalOnJndi:
在JNDI存在的条件下差在指定的位置
@ConditionalOnMissingBean:
当容器里没有指定Bean的情况下
@ConditionalOnMissingClass:
当类路径下没有指定类的条件下
@ConditionalOnNotWebApplication:
当前项目不是Web项目的条件下
@ConditionalOnProperty:
指定的属性是否有指定的值
@ConditionalOnResource:
类路径是否有指定的值
@ConditionalOnSingleCandidate:
当指定Bean在容器中只有一个,或者虽然有多个但是指定首选Bean
@ConditionalOnWebApplication:
当前项目是Web项目的条件下
springBoot自动化配置
 
 
1.1.3 @ConditionalOnSingleCandidate(DataSource.class)
    仅在单数据源bean存在时才生效
 
 
1.1.4 @AutoConfigureAfter({DataSourceAutoConfiguration.class})
    在DataSourceAutoConfiguration之后再加载
 
 
1.1.4.1 DataSourceAutoConfiguration的自动注入
springBoot自动化配置
 
 
1.1.4.2 @EnableConfigurationProperties({DataSourceProperties.class})
 @EnableConfigurationProperties 中引入类EnableConfigurationPropertiesImportSelector
        @Import({EnableConfigurationPropertiesImportSelector.class})
 类DataSourceProperties 为最终获取到配置文件配置信息的类。
    springBoot自动化配置
 
其他配置信息,可以参考  xxxxProperties 类。 路径spring-boot-autoconfigure-1.5.12.RELEASE.jar!\org\springframework\boot\autoconfigure\jdbc\DataSourceProperties.class
 
即大多数自动化配置信息都在 org\springframework\boot\autoconfigure 中。
 
 

相关文章: