當程序加入SpringBoot 的時候,會自動加入一個spring-boot-autoconfigure的jar包筐钟,其中包含了許多配置類胯努,應用于程序的classpath下。這些配置類都應用了Spring4.0以后引入的條件化配置着饥。
在Spring中,你可以很容易的編寫自己的條件惰赋,只要你實現(xiàn)Condition接口宰掉,并覆蓋他的matches方法。舉例說明:
image.png
以上程序定義了一個JdbcTemplateCondition 類赁濒,判斷當classpath下面存在JdbcTemplate類就會返回true轨奄,
程序中,如果這個條件成立拒炎,才會注入myService方法返回的Bean挪拟。
SpringBoot中定義了許多特殊的條件化注解,并將它們作用到配置類上
image.png
上圖中列出了SpringBoot中的自動化配置條件類击你。
image.png
上圖是SpringBoot中DataSourceAutoConfiguration 類的片段玉组,可以看出加上了Configuraion注解,并引入了其他配置文件的配置丁侄,@ConditionOnClass注解指定了ClassPath下面必須存在DataSource或EmbeddedDatabaseType類才運用這個配置類惯雳。如果它們不存在,則忽略這個配置類下配置的文件鸿摇。