spring中的问题

 
BeanPostProcessor 和 BeanFactoryPostProcessor
BeanFactoryPostProcessor 在生命周期在当所有的Bean定义载入以后,实列化Bean之前
BeanFactoryPostProcessor的postProcessBeanFactory方法将被调用,这样我们就可以在加载完所有的配置信息以后对配置信息进行一些修改或整理等等工作。
Spring有一个后好的例子就是PropertyPlaceholderConfigurer这个类,他实现了BeanFactoryPostProcessor接口,这个类的作用就是加载一个外部的properties文件具体配置如下:
       < bean id = "out" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
       < property name = "location" >
           < value > com/maomao/xml/dataconfig.properties </ value >
       </ property >
    </ bean >
    < bean id = "id" class = "com.maomao.model.Test" singleton = "true" >
       < property name = "driver" >< value > ${config.driver} </ value ></ property >
       < property name = "url" >< value > ${config.url} </ value ></ property >
       < property name = "user" >< value > ${config.user} </ value ></ property >
       < property name = "password" >< value > ${ocnfig.password} </ value ></ property >
</ bean >
 
dataconfig.properties 文件是
config.driver= com.mysql.jdbc.Dvriver
config.url= jdbc : mysql://127.0.0.1:3306/itcast
config.user= root
ocnfig.password= 1
 
这样当用 上下文工厂类加载完配置信息以后postProcessBeanFactory方法就可以把里面的${} 信息替换成对应的属性文件里的值。
 
下面我们将将BeanPostProcessor
我看书的时候书上说的一个类实现了BeanPostProcessor接口然后当bean依赖注入完以后就会调用它的2个方法
postProcessAfterInitialization (Object bean, String beanName)
          Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method).
 Object
至于这2个方法的在什么时候被调用我们不具体讲(实现会调用 postProcessBeforeIniialization ,然后会调用 bean 里配置的 init-method 方法,然后再调用 postProcessAfterInitialization , 而依照书上的讲解 BeanPostProcessor 就只对实现了BeanPostProcessor的接口才起作用,其实不是这样的,当你配置一个类,它实现了BeanPostProcessor接口,那么你这个配置文件里的所有类在创建完成以后都回来执行BeanPostProcessor这个实现类的2个方法。这和书上所讲的大不一样。这个就是BeanPostProcessor的生命周期。
 
注: 对BeanPostProcessor的生命周期本人还不是很了解,有些问题还在实验中。希望知道的大虾回馈意见。
 
 
 
 
 
 
 
 
 
 
 
 
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值