- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章spring中FactoryBean中的getObject()方法实例解析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文研究的主要是spring中FactoryBean中的getObject()方法的相关内容,具体如下.
FactoryBean接口定义了以下3个接口方法:
当配置文件中 <bean>的class属性配置的实现类是FactoryBean时,通过getBean方法返回的不是FactoryBean本身,而是 FactoryBean#getObject()方法所返回的对象,相当于FactoryBean#getObject()代理了getBean()方 法.
我们在配置Car时,Car的每个属性分别对应一个<property>元素标签。假设我们嫌这种方式不苟简洁,而希望通过逗号分隔的方式一次性的为Car的所有属性制定配置值,那么我们可以通过编写一个FactroyBean来达到目的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import
org.springframework.beans.factory.FactoryBean;
public
class
CarFactoryBean
implements
FactoryBean{
private
String carInfo;
public
Stirng getCarInfo(){
return
carInfo;
}
public
void
setCarInfo(String carInfo){
this
.carInfo=carInfo;
}
public
Object getObject()
throws
Exception{
Car car=
new
Car();
String[]infos = carInfo.split(
","
);
car.setBrand(infos[
0
]);
car.setMaxSpeed(Integer.aarseint(infos[
1
]));
car.setPrice(
double
.parsedouble(infos[
2
]));
return
car;
}
public
Class getObjectType(){
return
Car.
class
;
}
public
Boolean isSingleton() {
return
true
;
}
}
|
有了这个CarFactoryBean后,我们就可以在配置文件中使用以下的配置方式定义Car Bean了:
1
2
3
4
5
|
<
bean
id
=
"car"
class
=
"com.lxm.fb.carFactoryBean"
>
<
property
name
=
"carInfo"
value
=
"红旗CA72,200,20000.00"
/>
</
bean
>
|
当调用getBean("car")时,Spring通过反射机制发现CarFactoryBean实现了FactoryBean的接口,这时 Sping容器就调用接口方法CarFactoryBean#getObject()返回工厂类创建的对象。如果用户希望获取 CarFactoryBean的实例,则需要在使用getBean(beanName)方法时显式地在beanName前加上“&”前 缀:getBean("&car"). 。
总结 。
以上就是本文关于spring中FactoryBean中的getObject()方法实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持! 。
原文链接:http://blog.csdn.net/liuxiao723846/article/details/73794128 。
最后此篇关于spring中FactoryBean中的getObject()方法实例解析的文章就讲到这里了,如果你想了解更多关于spring中FactoryBean中的getObject()方法实例解析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
小问题:如果我有实现 FactoryBean 接口(interface)的类,我如何从 FactoryBean 对象本身而不是 FactoryBean.getObject() 中获取? 长问题:我必须
我没有看到 FactoryBean 用于创建 bean 的实用程序...为什么不能在 Configuration 类中创建相应的 bean? FactoryBean 有什么需要? 我知道我在这里遗漏了
是否可以向 FactoryBean 添加一个非空默认构造函数,其中参数由 @Value 注入(inject)? @Service public class DateTimeFormatterFacto
我有一个应用程序,我希望能够根据属性文件中的值切换 DAO 实现。 Spring FactoryBean 接口(interface)看起来工作得很好,因为我可以通过 FactoryBean 提供 DA
我正在尝试编写一个 Spring FactoryBean 来生成 Request 对象的列表。请求的数量和进入其中的值可以在运行时配置,因此我想使用这些属性。 每个请求都包含一对 ID 值,因此我需要
我想一起使用 FactoryBeans 和范围。具体来说,我希望将 FactoryBean 创建和返回的对象放入指定的(可能是自定义的)范围内。问题在于执行以下操作: 导致 FactoryBean
我在 Spring Boot 应用程序中的项目类: package com.example.demo; public class FirstModel { public String getS
我正在通过 XML 配置和实例工厂方法实例化一些 bean: 我通过 BeanFactory.getBean("bean", arguments...) 以编程方式实例化我的原型(prototyp
假设我有以下 Spring 配置(Spring 版本为 3.0.3): 我有 FactoryBean 实现的实例和其他一些实例。我需要 Spring 注入
我刚刚开始使用 Spring 3 MVC,目前使用的是 3.2.4.RELEASE。我已经使用 spring 工具套件创建了基本项目,并添加了 Hibernate 和 mysql 的配置。这是我添加到
我正在尝试在 spring 版本 4.3.6 中解析 FactoryBean 中的泛型类型。我使用用于创建任意数量的 CarClient 实例的 FactoryBean 创建 bean。 public
我有一组 FactoryBean 的实例其类型为MyFactoryBean 。构造函数采用 Class并使用它来确定从 getObject() 返回什么: public class MyFactory
是否有可能创建一个 POJO bean 将/可以被 Spring 视为 FactoryBean。所以我想创建一个 FactoryBean 类(有 getObject、getType、isSinglet
我正在尝试使用 org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean 在 Spring 4 中创建一个 FreeMa
我使用假客户端微服务并收到以下错误 - $ mvn spring-boot:run [INFO] Scanning for projects... [INFO] [INFO] ------------
Spring 提供了 FactoryBean 接口(interface)以允许对 bean 进行非平凡的初始化。该框架提供了许多工厂 bean 的实现,并且——当使用 Spring 的 XML 配置时
FactoryBean可用于以编程方式创建可能需要复杂实例化逻辑的对象。 但是,FactoryBean创建的bean似乎没有成为spring管理的。这种解释正确吗?如果是这样,有什么好的解决方法吗?包
我知道在使用 XML ( Spring ) 定义 bean 时可以获得对 factorybean 实例的引用。例如。: 但这也可以通过注释来做到这一点吗? (也许使用@Autowired 和@Qua
我想用自定义 Converter 创建一个 Spring ConversionService,但是 ConversionServiceFactoryBean#getObject 的返回值为 null。
我有两个接口(interface) IFoo 的实现: Foo1和 Foo2 . 我需要上下文才能为任何需要 IFoo 的类注入(inject)正确的上下文该类不知道它将获得什么实现(因此不使用 @Q
我是一名优秀的程序员,十分优秀!