首页 > 编程语言 > 详细

spring一些总结

时间:2015-08-17 19:17:10      阅读:236      评论:0      收藏:0      [点我收藏+]
Spring中三种实例化bean的方法:
1)使用类构造器
  <bean id="orderService" class="cn.itcast.OrderService"/>
 
2)使用静态工厂方法实现实例化
  <bean id="personService" class="cn.itacast.OrderFactory" factory-method="createOrder"/>
  public class OrderFactory{
       public static OrderServiceBean createOrder(){
             return new OrderServiceBean();
       }
  }
 3)使用实例工厂方法实例化
   <bean id="personServiceFactory" class="cn.itcast.service.OrderFactory"/>
   <bean id="personService" factory-bean="personServiceFactory" factory-method="createOrder"/>
   public class OrderFactory{
       public static OrderServiceBean createOrder(){
             return new OrderServiceBean();
       }
  }
  Bean的作用域:
  .singleton
    在每一个Spring Ioc容器中一个bean定义只有一个对象实例。默认情况下会在容器启动的时候初始化
    bean。但是我们可以指定Bean节点的lazy-init="true"来延迟初始化bean,这时候只有第一次使用
    bean的时候才会初始化bean。如:
    <bean id="xxx" class="类的全类名" lazy-init="true"/>
    如果想对所有bean都应用延迟初始化,可以在根节点beans设置defult-lazy-init="true",如下:
    <beans default-lazy-init="true"...>
  .prototype
     每次从容器获取的bean都是新的对象。
  .request
  .session
  .global session
 注入依赖对象
   1)基本类型对象注入
   <bean id="orderService" class="OrderServiceBean">
        <constructor-arg index="0" type="java.lang.String" value="xxx"/>  //构造器注入
        <property name="name" value="zhao"/>  //属相setter方法注入
   </bean>
   2)注入其他bean
   方法1:
        <bean id="orderDao" class="service.OrderDaoBean"/>
<bean id="orderService" class="service.OrderServiceBean">
   <property name="orderDao" ref="orderDao"/>
</bean>
   方法2:使用内部bean(内部bean不能被其他bean使用)
         <bean id="orderService" class="service.OrderServiceBean">
   <property name="orderDao">
        <bean class="service.OrderDaoBean"/>
   </property>
</bean>
集合装配类型:
   public class OrderServiceBean {
private Set<String> sets=new HashSet<String>();
private List<String> lists=new ArrayList<String>();
private Properties properties=new Properties();
private Map<String,String> maps=new HashMap<String,String>();
 
//setter和getter方法省略
.....
}
集合的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
 
 
<bean id="order" class="cn.itcast.service.OrderServiceBean">
 
<property name="lists">
<list>
<value>hujingwei</value>
<value>wanglei</value>
</list>
</property>
 
<property name="sets">
<set>
<value>set</value>
</set>
</property>
 
<property name="maps">
<map>
<entry key="hujingwei" value="26" />
<entry key="wanglei" value="25" />
</map>
</property>
 
<property name="properties">
<props>
<prop key="12">sss</prop>
</props>
</property>
 
</bean>
</beans>
 
自动装配
  在java代码中,使用@Autowired或@Resource注解方式进行装配,这两个注解的区别是:
  @Autowired默认是按类型装配,@Resource默认是按名称装配,当找不到名称匹配的时候
  才按照类型装配。
  @Autowired注解是按照装配类型进行装配的,默认情况下,依赖的对象必须存在,如果
  允许为null值,可以设置它的required属性为false。如果我们想按照名称装配,可以
  结合@Qualifier注解一起使用。如下:
  @Autowired
  @Qualifier("personOrderBean")
  private PersonDao personDao;

spring一些总结

原文:http://www.cnblogs.com/hujingwei/p/4737378.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!