BeanPostProcessor接口的做用:spring
若是咱們須要在Spring容器完成Bean的實例化先後添加一些邏輯處理,就定義一個或者多個BeanPostProcessor接口的實現,而後註冊到容器中去。設計
接口的設計就兩個方法實例化以前和以後處理,能夠根據須要進行相應的處理日誌
好比咱們能夠實現一下這個接口,這裏我就想處理一下實現AccountRepository接口的,這裏instanceof關鍵字通常咱們用於類,也能夠用於接口xml
這裏爲了展示初始化先後的邏輯,在AccountRepository實現中加入@PostConstruct註解,在初始化調用構造方法後執行blog
日誌輸出:繼承
固然這裏實現的BeanPostProcessor能夠實現多個的,還能夠繼承Order接口來實現處理順序!接口
咱們還能夠試試懶加載,在使用的類上加上@Lazy註解,這樣在啓動的時候是不會初始化的開發
之前咱們用spring的時候,喜歡把配置寫在xml文件中,而後使用ClassPathXmlApplicationContext,FileSystemXmlApplicationContext,FileSystemResource等,可是如今的開發方式就是簡化了這些配置,都使用註解,因此這裏用AppConfigit
而後咱們在獲取配置的時候,使用的是AnnotationConfigApplicationContext,繼承GenericApplicationContext這個通用應用上下文,這個後續好好看代碼再寫把。io
未完待續!