论坛首页 Java企业应用论坛

Spring中使用程序设定Bean以及关联bean

浏览 1861 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-11-05  
除了xml文件和属性文件以外,我们还可以在程序中直接来配置bean以及bean之间的联系,通过org.springframework.beans.MutablePropertyValues设置属性,然后将属性与Bean的类设置给org.springframework.beans.beans.factory.support.RootBeanDefinition,最后通过org.springframework.beans.factory.support.BeanDefinitionRegistry来注册Bean,下面我们还是以人物Role为实例:
public class TestBeanByProgrammer {
public static void main(String[] args) {
//通过MutablePropertyValues来设置属性
MutablePropertyValues properties=new MutablePropertyValues();
//设置name属性值为Mary
properties.addPropertyValue("name","Mary");
//设置health属性值为100
properties.addPropertyValue("health", 100);
//将properties赋予给Role类
RootBeanDefinition definition=new RootBeanDefinition(Role.class,properties);
BeanDefinitionRegistry reg=new DefaultListableBeanFactory();
//注册bean,设置bean的别名为role,相当与xml配置文件的id
reg.registerBeanDefinition("role", definition);
BeanFactory factory=(BeanFactory)reg;
Role role=(Role)factory.getBean("role");
System.out.println("人物名称是:" + role.getName() + ",人物的生命值是:"
		+ role.getHealth());
if (role.getGoods() != null) {
	System.out.println(role.getName() + "现有物品" + role.getGoods().size()
			+ "件" + ",分别为:");
	for (Goods obj : role.getGoods()) {
		System.out.println(obj.getName());
	}
} else
	System.out.println("暂时没有任何物品!");
}
}
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics