在Spring中假设我们要使用一个数据源,必须在配置DataSource才能使用,但是使用了Spring Boot这些就不存在了,相当于Spring Boot为我们做了很多配置的工作。
Spring 4提供了一个更通用的基于条件的Bean的创建方式,即使用@Conditional(实现Condition.class)注解。
以下Spring Boot自定义的条件化注解,它们定义了Condition的扩展实现:
@ConditionalOnBean (当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass (某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression (当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean (仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass (某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication (不是web应用)
所以Spring Boot可以做到自动配置。