主要作用是在 bean 的生命周期加入自己的代码,注意这个代码是多 context 里面所有的 bean 生效,
但可以根据beanName来过滤只对自己需要的bean实现额外的初始化或初始化后的操作。
postProcessAfterInitialization(Object bean, String beanName);
postProcessBeforeInitialization(Object bean, String beanName);
Spring in Action 2.4.1 也讲了,看一下就明白了。
跟BeanPostProcessor有关的是使用Auto-Proxy Creator来配置AOP
<!-- Create the proxy bean that returns AOP'd varieties of our controller -->
<bean name="proxyCreator" class="org.springframework.aop.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames" value="*Controller"/>
<property name="interceptorNames">
<list>
<value>beforeAdviceA</value>
<value>interceptorA</value>
</list>
</property>
</bean>
<bean name="beforeAdvisor" class="com.javalobby.tnt.spring.aop.BeforMethodAdvisor"/>
<bean name="afterAdvisor" class="com.javalobby.tnt.spring.aop.AfterMethodAdvisor" />
现在看来Auto-Proxy Creator只是一个简化配置
Auto-Proxy Creator Resource:
http://www.javalobby.org/java/forums/t45333.html