Spring学习之使用静态工厂方法以及实例工厂方法配置bean

原创 2017年06月10日 02:18:22

首先创建一个Car类作为bean方便工厂方法的使用

public class Car {

public String toString() {
return "Car [name=" + name + ", price=" + price + "]";
}
private String name;
private double price;
public Car()
{

}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Car(String name,double price)
{
this.name=name;
this.price=price;
}

}


接下来,首先是如何使用静态工厂方法来返回bean实例

1.写一个静态工厂并在静态代码块中添加bean

public class StaticFactory {
private static Map<String, Car> cars=new HashMap<String, Car>();
static{
cars.put("奥迪", new Car("奥迪", 300000.0));
cars.put("福特",new Car("福特", 250000.0));
}
public static Car getCar(String name)
{
return cars.get(name);
}


}

2.在xml文件中进行配置

   <!-- 
通过静态工厂方法来配置bean,不是配置静态工厂方法实例,而是配置bean实例
class属性:指向静态工厂的全类名
factory-method:指向静态工厂方法的方法名
constructor-arg如果工厂方法需要传入参数,则使用constructor-arg来配置参数
-->
<bean id="car1" 
class="factory.StaticFactory"
factory-method="getCar">
<constructor-arg value="奥迪"></constructor-arg>
</bean>     

使用实例工厂方法来返回bean实例

1.编写一个实例工厂

public class InstanceFactory {
private Map<String, Car> cars=new HashMap<String, Car>();
public InstanceFactory()
{
cars.put("奥迪", new Car("奥迪", 300000.0));
cars.put("福特", new Car("福特", 250000.0));
}
public  Car getCar(String name)
{
return cars.get(name);
}
}

2.在xml文件中进行配置

 <!-- 通过实例工厂方法来配置bean
factory-bean:实例工厂的全类名
factory-method:指向静态工厂方法的方法名
constructor-arg如果工厂方法需要传入参数,则使用constructor-arg来配置参数
 -->
<!-- 配置工厂的实例 -->
<bean id="factory" class="factory.InstanceFactory"></bean>
<!-- 通过实例工厂来配置bean -->
<bean id="car2"  factory-bean="factory" factory-method="getCar">
<constructor-arg value="奥迪"></constructor-arg>
</bean>

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GensingU/article/details/72974083

C++批判系列5--继承的本质

继承的本质继承关系是一种耦合度很高的关系,它与组合及一般化(genericity)一样,提供了OO中的一种基本方法,用以将不同的软件组件组合起来。一个类的实例同时也是那个类的所有的祖先的实例。为了保证...
  • cber
  • cber
  • 2001-06-09 15:59:00
  • 1484

静态工厂方法和实例工厂方法注入bean

一、静态工厂方法注入bean利用静态工厂方法可以把bean注入到IOC容器中。在XML文件中配置bean时,要指定class的属性为工厂的类;factory-method属性指定工厂类中工厂方法,用于...
  • u010502101
  • u010502101
  • 2017-11-26 17:41:24
  • 564

spring学习小结7_使用工厂方法来配置bean:静态工厂方法和实例工厂方法

使用工厂方法来配置bean:静态工厂方法和实例工厂方法 静态工厂方法:将对象创建的过程封装到另外一个类的静态方法中。当客户端需要对象时,只需要简单地调用工厂方法,而不需要关心对象创建 的细节。 ...
  • u012574931
  • u012574931
  • 2016-02-26 12:13:42
  • 446

静态工厂方法和实例工厂方法

在学习Spring bean的实例化方式的时候遇到的一个问题,Spring bean实例化有3种方法 1、构造器生成 2、静态工厂方法 3、实例工厂方法 那么问题来了,什么是静态工厂方法,什么是...
  • u012188107
  • u012188107
  • 2017-02-05 11:56:26
  • 4096

转:Spring使用静态工厂方法创建Bean

如何在Spring中不再使用Spring创建Bean实例,而是把Bean创建过程转移到开发者手中。 1. 使用静态工厂方法创建Bean     使用静态工厂方法创建Bean实例时,class属...
  • u012110719
  • u012110719
  • 2015-08-18 16:03:11
  • 1729

实例化Spring bean的两种工厂方法

  • 2010年07月24日 18:01
  • 11KB
  • 下载

Spring 使用实例工厂方法实例化Bean

知识点介绍:         实例工厂的意思是获取对象实例的方法不是静态的,所以你需要首先new工厂类,再调用普通的实例方法。 【转载使用,请注明出处:http://blog.csdn.net/m...
  • ma_hoking
  • ma_hoking
  • 2014-12-20 22:00:24
  • 2398

spring创建bean的三种方式-通过构造器,通过静态工厂方法,通过实例工厂方法

创建Bean实例的方式:    1) 通过构造器(有参或无参)        方式:    2) 通过静态工厂方法       方式:       注: 工厂类实例没...
  • prom1201
  • prom1201
  • 2016-03-06 21:08:49
  • 317

Spring 使用静态工厂方式实例化Bean

知识点介绍:静态工厂顾名思义,就是通过调用静态工厂的方法来获取自己需要的对象,为了让spring管理所有对象,我们不能直接通过"工程类.静态方法()"来获取对象,而是依然通过spring注入的形式获取...
  • ma_hoking
  • ma_hoking
  • 2014-12-20 21:00:47
  • 3631

spring 实例的工厂方法 依赖注入属性,都使用property 元素确

  • 2010年01月20日 23:05
  • 5.35MB
  • 下载
收藏助手
不良信息举报
您举报文章:Spring学习之使用静态工厂方法以及实例工厂方法配置bean
举报原因:
原因补充:

(最多只允许输入30个字)