使用BeanPostProcessor自定義bean實例
控制實例化邏輯和依賴解析。對於多個BeanPostProcessor,可以實現Ordered接口來控制調用順序。注意,操作的是Bean實例。同時,BeanPostProcessor只歸屬於某一個容器,不具有繼承關係。
對於調用順序,如果是通過xml配置自動檢測,則由ApplicationContext容器控制(Ordered起作用);如果是通過編程方式,則Ordered不起作用,順序只和註冊順序有關;調用順序,編程方式總是優先於配置方式。
例如:RequiredAnnotationBeanPostProcessor
使用BeanFactoryPostProcessor自定義bean配置元數據
注意,操作的是BeanDefinition實例。同樣,可以實現Ordered接口來控制調用順序。
例如:PropertyOverrideConfigurer、PropertyPlaceholderConfigurer
閱讀更多 有趣的代碼 的文章