spring FactoryBean
2015-10-08 20:25
363 查看
1.car 类
package com.hxzy.factorybean;
public class Car {
private String brand;
private String address;
public void setBrand(String brand) {
this.brand = brand;
}
public void setAddress(String address) {
this.address = address;
}
public Car() {
}
public Car(String brand, String address) {
super();
this.brand = brand;
this.address = address;
}
@Override
public String toString() {
return "Car [brand=" + brand + ", address=" + address + "]";
}
}
2.自定义工厂类
package com.hxzy.factorybean;
import org.springframework.beans.factory.FactoryBean;
//自定义的工厂bean需要实现factorybean接口
public class CarFactoryBean implements FactoryBean<Car>{
private String brand;
public void setBrand(String brand) {
this.brand = brand;
}
@Override
public Car getObject() throws Exception {
return new Car("jac", "合肥");
}
@Override
public Class<?> getObjectType() {
return Car.class;
}
@Override
public boolean isSingleton() {
return true;
}
}
3.bean 配置文件
<?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="com.hxzy.factorybean.CarFactoryBean">
<property name="brand" value="jac"></property>
</bean>
</beans>
4.测试类
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beanfactory.xml");
Car car = (Car) ctx.getBean("car");
System.out.println(car);
ctx.close();
package com.hxzy.factorybean;
public class Car {
private String brand;
private String address;
public void setBrand(String brand) {
this.brand = brand;
}
public void setAddress(String address) {
this.address = address;
}
public Car() {
}
public Car(String brand, String address) {
super();
this.brand = brand;
this.address = address;
}
@Override
public String toString() {
return "Car [brand=" + brand + ", address=" + address + "]";
}
}
2.自定义工厂类
package com.hxzy.factorybean;
import org.springframework.beans.factory.FactoryBean;
//自定义的工厂bean需要实现factorybean接口
public class CarFactoryBean implements FactoryBean<Car>{
private String brand;
public void setBrand(String brand) {
this.brand = brand;
}
@Override
public Car getObject() throws Exception {
return new Car("jac", "合肥");
}
@Override
public Class<?> getObjectType() {
return Car.class;
}
@Override
public boolean isSingleton() {
return true;
}
}
3.bean 配置文件
<?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="com.hxzy.factorybean.CarFactoryBean">
<property name="brand" value="jac"></property>
</bean>
</beans>
4.测试类
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beanfactory.xml");
Car car = (Car) ctx.getBean("car");
System.out.println(car);
ctx.close();
相关文章推荐
- struts2的date标签和其他标签
- spring 工厂方法配置bean
- javaEE学习笔记【02】JDK新特性
- jps命令(Java Virtual Machine Process Status Tool)(转)
- Android Studio 把快捷键设置成Eclipse的方式
- java异常处理
- leecode algo4: Median of Two Sorted Arrays (Java)
- Java 安全套接字编程以及 keytool 使用最佳实践
- IOC容器注入Spring bean——XML篇
- java学习:用反射构造bean
- 重温java代理模式
- 大龄屌丝自学笔记--Java零基础到菜鸟--029
- 更新SDK后eclipse报错This Android SDK requires Android Developer Toolkit version 23.0.0 or above
- MyEclipse报错Bad version number in .class file
- Java基础知识强化之IO流笔记30:字节流4种方式复制mp4并测试效率
- Spring MVC 全注解的方式实现单个和多个文件上传
- Spring MVC 全注解的方式实现单个和多个文件上传
- Eclipse JEE & ADE & Git & SVN & AXIS2/ Wtp
- Idea 编译报错 javacTask: 源发行版 1.6 需要目标发行版 1.6
- struts2中的标签什么时候用#,上面时候用%{},上面时候用%{#}小结