華文網

Spring Enable*高級應用及原理

Enable*

之前的文章用到了一些Enable*開頭的注解,比如EnableAsync、EnableScheduling、EnableAspectJAutoProxy、EnableCaching等,Enable表示開啟/允許一項功能。

Enable*工作原理

我們只需要幾個很簡單的注解就能開啟一個複雜的功能,這是多麼簡易的用法,這是怎麼辦到的?

首先來看看計畫任務@EnableScheduling的原始程式碼

主要核心的配置就是導入了一個設定檔,所以謎底也就接開了。

@Import(SchedulingConfiguration.class)

@Import用法

來看看Import的源碼

1、Configuration

即上面的用法,直接導入Configuration配置類。

2、ImportSelector

根據條件選擇導入不同的配置類,參考@EnableAsync

3、ImportBeanDefinitionRegistrar

動態註冊Bean,參考@EnableAspectJAutoProxy

推薦閱讀

<<2017年,Java程式猿10本經典好書推薦>>

<<高級Java必看的10本書>>

<>

看完有沒有收穫?分享到朋友圈給更多的人吧。

代碼及所有資源請加java群274435854下載,我們一起學習交流。

架構之路,頭條精選,每天一篇乾貨,喜歡就收藏+關注吧!