Spring 通过FactoryBean来配置bean
2017-06-17 14:02
465 查看
Spring 通过FactoryBean来配置bean
标签(空格分隔): Spring除了之前全类名和工厂方法这两种形式来配置bean之外,还可以使用FactoryBean的形式来配置bean。下面是一个例子:
首先先定义一个类,实现了actoryBean这个接口:
public class CarFactoryBean implements FactoryBean{
private String brand; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } @Override public Car getObject() throws Exception { // TODO Auto-generated method stub return new Car("BMW",500000); } @Override public Class<?> getObjectType() { // TODO Auto-generated method stub return Car.class; } @Override public boolean isSingleton() { // TODO Auto-generated method stub return true; }
}
当spring容器根据配置文件来生成bean的时候,这个bean的实例就是由getObject()这个方法来返回的,所以本例子中返回的bean实例就是new Car(“BMW”,500000)。
getObjectType()方法返回的是bean的类型,isSingleton()方法返回这个bean是否为单例。
下面是具体的配置文件:
配置文件中虽然为bean实例注入了属性brand的值为AUDI,但是CarFactoryBean的getObject方法最终返回的bean实例是BWM,所以main方法中的结果仍然为BWM。下面是main方法:
ApplicationContext ctx=new ClassPathXmlApplicationContext(“beans-beanfactory.xml”);
Car car=(Car)ctx.getBean(“car”);
System.out.println(car);
结果为:Car [name=BMW, price=500000]
由此可见普通全类名的配置和使用FactoryBean进行配置的区别:全类名创建后返回的bean实例是class属性中的类的对象,而FactoryBean配置后,最终返回的bean实例未必是class属性对应的那个类的对象,而是getObject()方法的对象。
相关文章推荐
- Spring_通过 FactoryBean 配置 Bean
- Spring中通过FactoryBean来配置bean
- Spring_通过Factory配置bean(10)
- Spring通过factory配置bean
- Spring 通过工厂方法(Factory Method)来配置bean
- Spring学习(7)--Spring中通过工厂方法和FactoryBean配置bean
- Spring 通过工厂方法(Factory Method)来配置bean
- Spring 通过工厂方法(Factory Method)来配置bean
- Spring通过SchedulerFactoryBean实现调度任务的配置
- spring学习笔记十 通过factoryBean配置bean
- Spring学习笔记之通过FactoryBean配置Bean
- Spring通过SchedulerFactoryBean实现调度任务的配置
- Spring-11:通过FactoryBean配置Bean
- Spring通过SchedulerFactoryBean实现调度任务的配置
- Spring_12_通过 FactoryBean 配置 Bean
- spring通过工厂方法和FactoryBean来配置Bean
- Spring整合quartz配置【一】基于MethodInvokingJobDetailFactoryBean实现任务管理
- spring 通过工厂方法配置Bean
- Spring4学习笔记-通过注解配置bean