BeanFactory与FactoryBean的YY
来源:互联网 发布:易云网络 编辑:程序博客网 时间:2024/04/29 02:02
spring中有俩种bean,一种是普通的bean、一种是工厂bean;既是FactoryBean。先看FactoryBean接口定义
工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个对象实例,而是该工厂Bean的getObject方法所返回的对象。在Spring框架内部,AOP相关的功能及事务处理中,很多地方使用到工厂Bean,本文简单YY工厂Bean的用法。 eg:
package com.moretry.morethink.test;
public class FactoryBeanTest implements FactoryBean {
private String flag;
public void setFlag(String flag)
{
this.flag=flag;
}
public Object getObject() throws Exception {
if("date".equals(flag))return new Date();
else return new String("这是一个String");
}
public Class getObjectType() {
return "date".equals(flag)?Date.class:String.class;
}
public boolean isSingleton() {
return false;
}
}
工厂bean的配置文件 textBeanFactory.xml
<bean name="testFactoryBean" class="springroad.deomo.chap4.FactoryBeanTest"/>
<bean name="testFactoryBean1" class="springroad.deomo.chap4.FactoryBeanTest"><property name="flag" value="date"/></bean>
测试代码:
Resource res=new ClassPathResource("stextBeanFactory.xml");
BeanFactory factory=new XmlBeanFactory(res);
System.out.println(factory.getBean("testFactoryBean").getClass());
System.out.println(factory.getBean("testFactoryBean1").getClass());
运行结果:
class java.lang.String
class java.util.Date
很显然结果是根据FactoryBeanTest 的getObject()返回值来执行的。
但是如果我们需要返回FactoryBean的实例,而非是getObject()返回值呢?该如何处理?
很简单,bean的名称前加上一个特殊符号“&”即可得到该工厂bean的实例了。如下:
System.out.println(factory.getBean("&testFactoryBean").getClass());
System.out.println(factory.getBean("&testFactoryBean1").getClass());
运行结果如下:
com.moretry.morethink.test.FactoryBeanTest
ccom.moretry.morethink.test.FactoryBeanTest
就写到这里了。
- BeanFactory与FactoryBean的YY
- BeanFactory 与 FactoryBean的区别
- BeanFactory 与 FactoryBean的区别
- BeanFactory 与 FactoryBean的区别及FactoryBean详解
- Spring BeanFactory 与 FactoryBean的区别
- BeanFactory 与 FactoryBean 概念的理解
- FactoryBean与BeanFactory
- FactoryBean 与BeanFactory
- FactoryBean与BeanFactory
- FactoryBean与BeanFactory
- beanFactory与FactoryBean区别
- BeanFactory与FactoryBean
- spring BeanFactory与FactoryBean
- BeanFactory 与 FactoryBean
- Spring之FactoryBean与BeanFactory
- Spring之BeanFactory 与 FactoryBean
- 底层解惑-spring的IOC相关接口:BeanFactory与FactoryBean
- 理解spring中的BeanFactory和FactoryBean的区别与联系
- 技术交流qq群 49743834
- 网管经验:快捷方式不能使用的解决方法
- Multiple Servlet 部署
- 实现打开文件、但不让用户保存
- PKU1012解题
- BeanFactory与FactoryBean的YY
- jsp执行过程
- Delphi中Form的position属性与代码自定义窗体位置
- java中的lang包介绍
- GridView EmptyDataTemplate: Get Rid of That Annoying Border!
- UCOS2下邮箱使用【转】
- LINUX常用基本命令及应用技巧大全1
- 什么是动态页空间?什么静态空间?
- 做richfaeces +jsf 非常有用的网站