Spring Bean 的后处理

[color=blue][b]Bean的后处理[/b][/color]

Spring提供了2次机会让你切入到Bean的生命周期中去检查并修改它的配制,这叫做后处理

[b]后处理的类须继承:[/b]public interface BeanPostProcessor{
Object postProcessBeforeInitializtion(Object bean,String name) throws BeansExcepton;
//在Bean的初始化方法之前调用
Object postProcessAfterInitializtion(Object bean, String name) throws BeansExcepton;
//在Bean的初始化方法之后调用
}

[b]自定义后处理类:[/b]
1.我们编写一个类CustomPostProcessor实现BeanPostProcessor接口
2.注册后处理类:
(1)BeanPostProcessor bpp = new CustomPostProcessor();
factory.addBeanPostProcessor(bpp);
(2) <bean id="customPostProcessor" class="*.CustomPostProcessor"
结果:
注册完后处理类后,其他的所有的bean,都会在初始化的前后调用相应的方法

[color=blue][b]Bean Factory的后处理[/b][/color]

BeanFactoryPostProcessor在beanfactory载入所有的bean的定义后实例化bean之前,对beanfactory的后处理,如计算bean的个数等等

后处理的类必须继承:
public interface BeanFactoryPostProcessor{
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)throws BeansException;
}
自定义beanfactory后处理类
1.编写一个类B实现接口
2.注册声明bean
(1) bean工厂中无法使用
(2) 上下文容器中配制为普通bean即可

[color=blue][b]Spring自身的后处理类[/b][/color]

[b]PropertyPlaceholderConfigurer 分散配制类[/b]

<bean id="propertyConfigurer" class="org.springframework.beans.
factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<list>
<value>web-inf/****.properties</value>
</list>
</property>
</bean>

[b]java.beans.PropertyEditorSupport 定制属性编辑器类[/b]

该类中有2个方法 getAsText();setAsText(String value);

它可以将一个字符串拆分并组装成一个对象,并将此对象注入到其他使用该对象的bean中。

[b]自定义属性编辑器[/b]

编写类 C 实现java.beans.PropertyEditorSupport 类
配制:
<bean id="customEditorConf" class="org.spring.framework.beans.facotry.
config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="*......C"
<bean id="c" class="*......C"/>
</entry>
</map>
</property>
</bean>
[b]
注入到其他类中:[/b]
<bean id="target" class="..................."
<property name="x">//x 为一个java对象,此时运行C的方法把value转换成x对象
<value>1234_1313_2424</value>
</property>
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值