zoukankan      html  css  js  c++  java
  • 一步一步深入spring(3)--spring的依赖注入方式

    对于spring配置一个bean时,如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的依赖注入就是通过springbean所需要的一些参数传递到bean实例对象的过程,spring的依赖注入有3种方式:

    1.使用属性注入:

    1 <bean id=”……” class=”……”>  
    2        <property name=”属性1” value=”……”/>  
    3        <property name=”属性2” value=”……”/>  
    4        ……  
    5 </bean>  

    使用属性的setter注入方式时,所注入的属性必须提供setter和getter方法,spring在实例化时会自动调用无参数的构造方法或者静态工厂方法,实例化之后自动调用属性的set方法将值设置进去。

    具体可分为:

    (1)Spring中为一个bean注入其依赖的另一个bean时,通过使用ref来注入另一个bean,简单例子如下:

    如果bean2中通过bean1属性引用了bean1则通过下面方式注入:

    1 <bean id="personDao" class="com.yangyang.dao.impl.PersonDaoImpl">
    2 </bean>
    3 
    4 <!-- 采用内部注入bean注入依赖对象 -->
    5 <bean id="personService2" class="com.yangyang.service.impl.PersonServiceImpl"> 
    6 <property name="personDao" ref="personDao"></property> 
    7 <property name="name" value="yangyang"></property> 
    8 <property name="age" value="23"></property> 
    9 </bean>
    View Code

    (2)spring的集合注入:

    当需要给Bean的集合引用注入值时,spring也提供了相应的方法:

    a.Set集合注入:

    1 <bean id=”……” class=”……”>  
    2 <set>  
    3               <value>value1</value>  
    4               <value>value2</value>  
    5               ……  
    6        </set>  
    7 </bean>  
    8  
    View Code

    b.List集合注入:

    1 <bean id=”……” class=”……”>  
    2 <list>  
    3               <value>value1</value>  
    4               <value>value2</value>  
    5               ……  
    6        </list>  
    7 </bean>  
    View Code

    c.Map集合注入:

    1 <bean id=”……” class=”……”>  
    2 <map>  
    3               <entry key=”key1” value=”value1”>  
    4               <entry key=”key2” value=”value2”>  
    5               ……  
    6        </map>  
    7 </bean>  
    View Code

    d.Properties注入:

    1 <bean id=”……” class=”……”>  
    2 <props>  
    3               <prop key=”key1”>value1</prop>  
    4               <prop key=”key2”>value2</prop>  
    5               ……  
    6        </props>  
    7 </bean>  
    View Code

    2.使用构造器注入:

    1 <bean id=”……” class=”……”>  
    2        <constructor-arg>构造函数需要的参数1</constructor-arg>  
    3        <constructor-arg>构造函数需要的参数2</constructor-arg>  
    4        ……  
    5 </bean>  

    使用构造器注入方式时:spring在实例化该Bean时会调用配置参数符合的构造方法。

    3.使用注解的方式注入:

    使用Field字段注入方式,该方式是spring2.5以后提供的基于java 注解(annotation)方式的注入,就是在java中的字段上或者setter方法上通过使用注解方式进行spring的依赖注入。

    例如:

    a.字段注入: 

    1 @Resource  
    2 private  UserDao dao;
    View Code

    b. 属性注入:

    1 @Resource  
    2 public void setUserDao(UserDao dao){  
    3        this.dao = dao;  
    4 }  
    View Code
    ----------------------------------------------------------------------------------------
    如果您觉得阅读本文对您有帮助,请微信扫码关注作者,与我进行交流!欢迎各位转载,转载文章之后须在文章页面明显位置给出作者和原文连接,谢谢。
  • 相关阅读:
    解压缩编码列表
    按既定顺序创建目标数组
    整数的各位积和之差
    好数对的数目
    拿硬币
    设计 Goal 解析器
    【求助】win 2008 R2 远程桌面多用户,破解最大连接数2的限制
    Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次
    Java abstract class 和 interface 的区别
    忘记BIOS超级管理员密码,怎么破解?
  • 原文地址:https://www.cnblogs.com/shunyang/p/3279300.html
Copyright © 2011-2022 走看看