-
spring学习笔记——BeanWrapper和BeanFactory类
2004-10-15
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://shidu.blogbus.com/logs/443542.html
内容大部分是转载,觉得不错,整理一下登在此处。
BeanWrapper和BeanFactory是spring的核心,BeanWrapper实现了针对单个Bean的属性设定操作。而BeanFactory则是针对多个Bean的管理容器,根据给定的配置文件,BeanFactory从中读取类名、属性名/值,然后通过Reflection机制进行Bean加载和属性设定。
BeanWrapper的主要功能是,由Spring根据配置文件,将其他对象的引用通过组件的提供的setter方法进行设定。
1、如果借助Java的Reflection机制完成:
Class cls = Class.forName("net.xiaxin.beans.User");
Method mtd = cls.getMethod("setName",new Class[]{String.class});
Object obj = (Object)cls.newInstance();
mtd.invoke(obj,new Object[]{"Erica"});
return obj;
2、通过Spring BeanWrapper操作一个JavaBean:
Object obj = Class.forName("net.xiaxin.beans.User").newInstance();
BeanWrapper bw = new BeanWrapperImpl(obj);
bw.setPropertyValue("name", "Erica");
对比之前的代码,相信大家已经知道BeanWrapper的实现原理。
诚然,通过这样的方式设定Java Bean属性实在繁琐,但它却提供了一个通用的属性设定机制,而这样的机制,也正是Spring依赖注入机制所依赖的基础。BeanFactory,顾名思义,负责创建并维护Bean实例。
BeanFactory负责根据配置文件创建Bean实例,可以配置的项目有:
1. Bean属性值及依赖关系(对其他Bean的引用)
2. Bean创建模式(是否Singleton模式,即是否只针对指定类维持全局唯一的实例)
3. Bean初始化和销毁方法
4. Bean的依赖关系
下面的代码演示了如何通过BeanFactory获取Bean实例:
InputStream is = new FileInputStream("bean.xml");
XmlBeanFactory factory = new XmlBeanFactory(is);
Action action = (Action) factory.getBean("TheAction");随机文章:
关于“关系数据库”和“面向对象数据库”的比喻 2005-04-29UML提供的9种图(转) 2005-02-22记下来 2005-01-16代理的三种形式 2004-12-20在struts的ActionForward中添加参数 2004-12-13
收藏到:Del.icio.us







