深入理解条件过滤Conditional
生活随笔
收集整理的這篇文章主要介紹了
深入理解条件过滤Conditional
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在分析AutoConfigurationImportSelector的源碼時,會先掃描spring-autoconfiguration-metadata.properties文件,最后在掃描spring.factories對應的類時,會結合前面的元數據進行過濾,為什么要過濾呢??原因是很多的@Configuration其實是依托于其他的框架來加載的,如果當前的classpath環境下沒有相關聯的依賴,則意味著這些類沒必要進行加載,所以,通過這種條件過濾可以有效的減少@configuration類的數量從而降低SpringBoot的啟動時間。?
Conditional中的其他注解?
| @ConditionalOnBean | 在存在某個bean的時候 |
| @ConditionalOnMissingBean | 不存在某個bean的時候 |
| @ConditionalOnClass | 當前classpath可以找到某個類型的類時 |
| @ConditionalOnMissingClass | 當前classpath不可以找到某個類型的類時 |
| @ConditionalOnResource | 當前classpath是否存在某個資源文件 |
| @ConditionalOnProperty | 當前jvm是否包含某個系統屬性為某個值 |
| @ConditionalOnWebApplication | 當前spring context是否是web應用程序 |
?
總結
以上是生活随笔為你收集整理的深入理解条件过滤Conditional的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring框架中的SpringFact
- 下一篇: 什么是Starter