Spring通过工厂方法配置bean

一、通过调用静态工厂方法创建Bean
工厂方法:
private static  Map < String , Car cars  new  HashMap < String Car > () ;

static  {
    cars . put ( "audi" , new  Car ( "audi" , "300000" )) ;
    cars . put ( "ford" , new  Car ( "ford" , "400000" )) ;
}

public static  Car  getCar ( String  name ){
    return  cars . get ( name ) ;
}
Spring配置:
< bean  id ="staticCar"  class ="factory.staticCarFactory"  factory-method ="getCar" >
    < constructor-arg  value ="audi" ></ constructor-arg >
</ bean >
--调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中,当客户端需要对象时,只需要简单的调用静态方法,而不同关心创建对象的细节
--要声明通过静态方法创建的Bean,需要在Bean的class属性里制定拥有该工厂的方法类,同时在factory-method属性里指定工厂方法的名称。最后使用<constrctor-arg>元素为该方法传递方法参数

二、通过调用实例工厂方法创建Bean
工厂方法:
private  Map < String , Car cars  null ;

public  InstanceCarFactory (){
    cars = new  HashMap < String Car > () ;
    cars . put ( "audi" , new  Car ( "audi" , "300000" )) ;
    cars . put ( "ford" , new  Car ( "ford" , "300000" )) ;
}

public  Car  getCar ( String  name ){
    return  cars . get ( name ) ;
}
Spring配置:
<!-- 配置工厂类 -->
< bean  id ="carFactory"  class ="factory.InstanceCarFactory" ></ bean >
<!-- 配置通过工厂创建bean -->
< bean  id ="InstanceCar"  factory-bean ="carFactory"  factory-method ="getCar" >
    < constructor-arg  value ="ford" ></ constructor-arg >
</ bean >
--实例工厂方法:将对象的创建过程封装到另外一个对象实例的方法里,当客户端需要请求对象时,只需要简单的调用该实例方法而不需要关心对象的创建细节。
--要声明通过实例工厂方法创建的Bean
     --在bean的factory-bean属性里指定拥有该工厂方法的Bean
     --在factory-method属性里指定该工厂方法的名称
     --使用constructor-arg元素为工厂方法传递方法参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值