使用BeanWrapper管理Bean
1.修改Bean,增加一个无参数的构造函数
2.配置文件基本不需要改变
3.修改测试代码
1.修改Bean,增加一个无参数的构造函数
2.配置文件基本不需要改变
3.修改测试代码
Bean如下所示:
package com.gc.action; import java.util.Date; public class HelloWorld //implements InitializingBean,DisposableBean { private String msg=null;//该变量用来存储字符串 private Date date=null;//该变量用来存储日期 public HelloWorld(){ } //设定变量msg的set方法 public void setMsg(String msg) { this.msg=msg; } //获取变量msg的get方法 public String getMsg() { return this.msg; } public Date getDate() { return this.date; } public void setDate(Date date) { this.date = date; } }
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!--定义一个Bean--> <bean id="HelloWorld" class="com.gc.action.HelloWorld" init-method="afterPropertiesSet" destroy-method="cleanup"> <!--将其变量msg通过依赖注入--> </bean> </beans>
测试程序:
package com.gc.test; import java.util.Date; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; import org.springframework.context.ApplicationContext; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.gc.action.HelloWorld; public class TestHelloWorld { public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException { //通过Class.forName()方法获取类HelloWorld的一个实例 Object obj=Class.forName("com.gc.action.HelloWorld").newInstance(); //通过BeanWrapper来设定类HelloWorld的属性 BeanWrapper bw=new BeanWrapperImpl(obj); //根据类变量设定变量的值 bw.setPropertyValue("msg","HelloWorld"); bw.setPropertyValue("date",new Date()); System.out.println(bw.getPropertyValue("date")+" "+bw.getPropertyValue("msg")+"------"); } }
输出:
Tue Mar 20 19:29:35 CST 2012 HelloWorld------