Spring学习二

一、使用java类来配置bean,前面都是使用xml来配置bean

  1. @Configuration  用于修饰一个Java类 为配置类 
  2.  * @Bean:修饰一个方法,将该方法的返回值,定义成容器中的一个bean; 
  3.  * @Value:修饰一个filed,用于给该字段 赋值 
  4.  * @import:修饰一个Java配置类,用于向当前配置类中导入其他 Java配置类 
  5.  * @Scope:修饰一个方法,定义该方法返回的Bean的生命域 
  6.  * @Lazy:修饰一个方法,指定该方法返回的对应Bean是否需要延迟初始化 
  7.  * @DepondOn:修饰一个方法,指定在初始化对应方法返回Bean之前,初始化指定Bean 
二、使用静态工厂(staticFactory)方法创建bean

    1.不需要为工厂类配置bean;   2.可以直接使用class指定工程类

  1. <bean id="stoneAxe_sf" class="cn.sh.springmvc_java.factory.AxeFactory" factory-method="getAxe" >  
  2.             <constructor-arg value="stone"/>  
  3.             <property name="name" value="小石头"/>  
  4.      </bean> 
factory-method工厂方法指定了实体类中对应的方法名

对应的实体类:

  1. public class AxeFactory {  
  2.   
  3.     public static Axe getAxe(String arg){  
  4.         if(arg.equals("stone")){  
  5.             return new StoneAxe();  
  6.         }else if(arg.equals("steel")){  
  7.             return new SteelAxe();  
  8.         }  
  9.         return null;  
  10.     }  
  11. }  
三、使用实例工厂创建bean :必须将工厂配置成一个Bean,因为工厂需要实例化;必须使用factory-bean指定工厂bean

   

  1. public class PeopleFactory {  
  2.   
  3.     public People getPeople(String type){  
  4.         if(type.equalsIgnoreCase("chin")){  
  5.             return new China();  
  6.         }else{  
  7.             return new American();  
  8.         }  
  9.     }  
  10. }  

   实例化:

  1. <!-- 使用 实例工厂 创建Bean  
  2.         1:必须将工厂配置成一个Bean,因为 工厂需要实例化  
  3.         2:必须使用 factory-bean 指定 工厂bean  
  4.       -->  
  5.      <bean id="peopleFactory" class="cn.sh.springmvc_java.factory.PeopleFactory"/>  
  6.      <bean id="china" factory-bean="peopleFactory" factory-method="getPeople">  
  7.         <constructor-arg value="chin"/>  
  8.      </bean>  
  9.      <bean id="american" factory-bean="peopleFactory" factory-method="getPeople" scope="prototype" init-method="init" destroy-method="close">  
  10.         <constructor-arg value="ame"/>  
  11.      </bean>  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值