Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > Spring的bean注入
【标  题】:Spring的bean注入
【关键字】:Spring,bean
【来  源】:http://blog.csdn.net/feiliu010/archive/2006/10/27/1353056.aspx

Spring的bean注入

Your Ad Here

Spring的注入:
(1)setter注入:
Spring中成员list,set,map,props的配置:
一>>>>list和数组的配置:无论类中的属性是一个list还是数组,均需要用<list></list>元素装载此属性
  <property name="testList">
 <list>
  <value>test1</value>
  <ref bean="test1">
 </list>
  </property>
  在spring中使用hibernate持久化对象,需要配置一个LocalSessionFactoryBean,
  这个类中有一个mappingResources属性,由利用list来组装所有的mappingResources文件。例:
  <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
 <property name="mappingResources">
  <list>
   <value>/com/wes/spring/resource/Test1.hbm.xml</value>
   <value>/com/wes/spring/resource/Test2.hbm.xml</value>
   <value>/com/wes/spring/resource/Test3.hbm.xml</value>
  </list>
 </property>
  </bean>
  通过以上配置就达到了在sessionFactory中取到hbm配置文件的目的了。
二>>>>Set的配置:有时为了确保集合中数据的唯一性,需要用到一个java.util.Set的属性,具体配置如下:
 <property name="testSet">
  <set>
   <value>test1</value>
   <ref bean="test1">  <!-- 和list一样set可以装配任何属性的对象 -->
  </set>
        </property>
三>>>>Map属性:很多时候需要用map去存放一些key-->value对,这是java.util.Map类型的属性配置如下:
 <property name="testMap">
  <map>
   <entry key="key1">
    <value>test1</value>
   </entry>
   <entry key="key2"> 
    <ref bean="test2">
   </entry>
  </map>
 </property><!--目前Spring中只允许String类型的为主键-->
四>>>>Properties:java.util.Properties也能通过配置达到初始化的目的:
 <property name="testProps">
  <props>
   <prop key="key1">test1</prop>
   <prop key="key2">test2</prop>
  </props><!-- 所有key value值均为String类型 -->
 </property>
五>>>>设置null,明确将一个属性设置为null
 <property name="test1"><null/></property>

    注:setter注入的缺点是它假设了所有的可变属性都可以通过set方法访问到,也许你不希望自己的Bean是这样的。首先:
当一个bean实例化的时候,它的所有属性都没有设置,它会处于一个不确定状态。其次:有时候要求一些属性的值只能在创建的时候设置一次,以后就不能改变了。一种替代的方法是构造注入。

通常应用:一般在一些比较固定的场合应用,像数据源(DataSource),固定属性(性别),还有其他一些固定属性想配置进来的都可以。

(2)构造注入:
 package com.wes.spring;
 public class Test{
  private String a;
  private String b;
  public Test(String a,String b) {this.a = a; this.b=b}
 }
 具体配置:
 <bean id="test" class="com.wes.spring.Test">
  <constructor-arg index="1">
   <value>bbbb</value>
  <constructor-arg>
  <constructor-arg index="0">
   <value>aaaa</value>
  <constructor-arg>
 </bean><!-- 当有多个参数时用index指定具体要赋的变量,index从0开始,也可以用type(变量类型)指定,但如果参数的类型一样时就没办法用type指定了 -->
 

springlive-第二章代码:【上一篇】
配置EditPlus编辑器,编译Java程序:【下一篇】
【相关文章】
  • springlive-第二章代码
  • 关于spring 2.0自定义xml 标记 (二 如何实现)
  • 采用struts+hibernate+spring开发的一个web系统(8)--数据库介绍
  • EJB3 SessionBean LifeCycle
  • SPRING笔记一
  • spring开发小记:ApplicationContext 的创建
  • SpringSide 2.0 社区全新组团盛大开放
  • netbeans5.5使用技巧
  • 幼学琼林--Spring下的单元测试要点
  • 采用struts+hibernate+spring开发的一个web系统(7)--系列截至
  • 【随机文章】
  • Ajax学习--网址备忘录
  • 面向对象整体GIS数据模型的设计与实现
  • Big Endian and Little Endian
  • E1线路知识点总结
  • linux中的时间流
  • MySQL转移到PostgreSQL的痛苦经历
  • ASP技术在论坛中的运用(七)(吐血推荐!!!!)
  • C# xml xsl javascript 的结合使用 web 程序模仿 windows 资源管理器
  • 加密算法--md5算法介绍
  • 在derby(Java DB) 中操作 clob 和 blob
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.