1.对Bean进行后处理,必须实现BeanPostProcessor接口,后处理是在Bean实例化以及装配完成之后发生的。
下面是一个简单的例子:
先来创建一个实现了BeanPostProcessor接口的类,此类功能是把Bean中的所有String属性的值的r,l或R,L换成w或W,代码如下:
package cn.itcast;
import java.lang.reflect.Field;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class Fuddifier implements BeanPostProcessor {
public Object postProcessBeforeInitialization(Object arg0, String arg1)
throws BeansException {
Field[] fields = arg0.getClass().getDeclaredFields();
try {
for (int i = 0; i < fields.length; i++) {
if (fields[i].getType().equals(java.lang.String.class)) {
fields[i].setAccessible(true);
String original = (String) fields[i].get(arg0);
fields[i].set(arg0, fuddify(original));
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
return arg0;
}
private String fuddify(String orig) {
if (orig == null)
return orig;
return orig.replaceAll("(r|l)", "w").replaceAll(" (R|L) ", "W");
}
public Object postProcessAfterInitialization(Object arg0, String arg1)
throws BeansException {
return arg0;
}
}
再来创建一个简单的javaBean:
package cn.itcast;
public class Rabbit {
private String description;
private String address;
public String getAddress() {
return address;
}