org.springframework.beans.factory.config.BeanPostProcessor和org.springframework.beans.factory.config.BeanFactoryPostProcessor都可以在一個被Spring管理的Bean的生命週期中進行自定義的一些處理,當然這個生命週期多半是被Spring管理的Bean實例化前後,這種操作也可以叫做鉤子。
實現BeanFactoryPostProcessor接口的方法將會在Bean實例化之前調用,
實現BeanPostProcessor接口的方法將會在實例化Bean之後調用。
實現InitializingBean接口的方法afterPropertiesSet()會在BeanPostProcessor#postProcessBeforeInitialization()方法之後BeanPostProcessor#postProcessAfterInitialization()之前調用,並且InitializingBean的實現只針對實現的bean,並不像BeanPostProcessor那樣對所有被Spring管理的Bean都有效。
使用時需要注意的是,在實現BeanFactoryPostProcessor接口的方法中萬萬不可進行實例化Bean的操作,否則會引起不可預知的錯誤。另外這三個Bean需要註冊到Spring容器中才能生效。