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

37 篇文章 0 订阅
29 篇文章 2 订阅

实现了接口 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;
}
@Override
public 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 {

	@Override
	public Object postProcessAfterInitialization(Object arg0, String arg1)
			throws BeansException {
		System.out.println("after init...");
		return arg0;
	}

	@Override
	public Object postProcessBeforeInitialization(Object arg0, String arg1)
			throws BeansException {
		System.out.println("before init...");
		return arg0;
	}

}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值