Spring学习历程---管理bean的生命周期

来源:互联网 发布:软件打斗视频 编辑:程序博客网 时间:2024/05/16 00:31

实现了接口 BeanPostProcessor 的类可以实现初始化bean前的方法和初始化bean后的方法。

对所有bean都有效。注意需要在相应的xml文件中配置。<bean class=""/> 引入即可。



附上实例源码:

applicationContext.xml

   <bean id="car"  class="com.wanhao.Car"  init-method="init"  destroy-method="destory"><property name="name"  value="Ford"/><property name="maxSpeed"  value="#{T(java.lang.Math).PI *100 }"/><property name="place" value="CA"/><property name="price" value="101"/></bean>        <bean class="com.wanhao.MyBeanPost"/>
Car.java

package com.wanhao;public class Car { private String name; private int maxSpeed; private String place; private double price; public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Car [name=" + name + ", maxSpeed=" + maxSpeed + ", place=" + place+ ", price=" + price + "]";}public Car() {super();System.out.println("CAR constructor  runs....");}public int getMaxSpeed() {return maxSpeed;}public Car(String name, int maxSpeed, String place) {super();this.name = name;this.maxSpeed = maxSpeed;this.place = place;}public void setMaxSpeed(int maxSpeed) {this.maxSpeed = maxSpeed;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getPlace() {return place;}public void setPlace(String place) {this.place = place;}public void init(){System.out.println("car init...");}public void destory(){System.out.println("car destory...");}}
MyBeanPost.java

package com.wanhao;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;public class MyBeanPost implements BeanPostProcessor {@Overridepublic Object postProcessAfterInitialization(Object arg0, String arg1)throws BeansException {System.out.println("after init...");return arg0;}@Overridepublic Object postProcessBeforeInitialization(Object arg0, String arg1)throws BeansException {System.out.println("before init...");return arg0;}}









0 0
原创粉丝点击