通过FactoryBean来配置Bean

package logan.spring.study.factoryBean;

public class Car {

    private String brand;
private int price;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "Car [brand=" + brand + ", price=" + price + "]";
}
public Car(String brand, int price) {
super();
this.brand = brand;
this.price = price;
}
}
package logan.spring.study.factoryBean;

import org.springframework.beans.factory.FactoryBean;
//自定义的FactoryBean需要实现FactoryBean接口
public class CarFactoryBean implements FactoryBean<Car>{ private String brand; public void setBrand(String brand) {
this.brand = brand;
} //返回bean的对象
@Override
public Car getObject() throws Exception {
// TODO Auto-generated method stub
return new Car(brand,500000);
} //返回Bean的类型
@Override
public Class<?> getObjectType() {
// TODO Auto-generated method stub
return Car.class;
} @Override
public boolean isSingleton() {
// TODO Auto-generated method stub
return true;
} }

下面是配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 通过FactoryBean来配置Bean的实例
class:指向FactoryBean的全类名
property:配置FactoryBean的属性
但实际上返回的实例却是FactoryBean的getObject()方法返回的实例
-->
<bean id="car" class="logan.spring.study.factoryBean.CarFactoryBean">
<property name="brand" value="BMW"></property>
</bean> </beans>

下面是输出结果:

五月 21, 2017 7:44:58 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@7aec35a: startup date [Sun May 21 19:44:58 CST 2017]; root of context hierarchy
五月 21, 2017 7:44:58 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [beans-beanfactory.xml]
Car [brand=BMW, price=500000]

最新文章

  1. 最长回文子串(Longest Palindromic Substring)
  2. 总结CSS3新特性(选择器篇)
  3. iOS开发问题之Could not instantiate class named NSLayoutConstraint
  4. 网页3D效果库Three.js初窥
  5. parentNode(返回指定节点的父节点。)
  6. Html的maxlength属性
  7. 关于jQuery中.attr()和.prop()的问题
  8. [读书笔记]了不起的node.js(四)
  9. app 转caf 音频 代码
  10. citrix协议ICA技术原理
  11. Windows Store Javascript项目使用高德地图、谷歌地图、百度地图API
  12. struts2(一)之初识struts2
  13. c++中函数的内存注意项
  14. 这是一个新的开始at this very monment
  15. 转://Linux Multipath多路径配置与使用案例
  16. boost python3依赖安装
  17. javascript对文件的读写
  18. 实力封装:Unity打包AssetBundle(番外篇)
  19. 【转载】 强化学习(七)时序差分离线控制算法Q-Learning
  20. 浅谈Java代理二:Cglib动态代理-MethodInterceptor

热门文章

  1. 【WinForm】创建自定义控件(转)
  2. ArcGIS api for javascript 离线部署
  3. 九度OJ 1018:统计同成绩学生人数 (基础题)
  4. TVirtualStringTree的Minimal例子学习
  5. python基础教程_学习笔记11:魔法方法、属性和迭代器
  6. SAP 已经有17个模块
  7. YTST_CX_0001(ALV栏位汇总)
  8. Java for LeetCode 109 Convert Sorted List to Binary Search Tree
  9. Java for LeetCode 108 Convert Sorted Array to Binary Search Tree
  10. 小程序开发之xxx is not defined