• Spring学习 Ioc篇(二 )


    5、spring依赖注入的方式

    方法一:使用构造器方式进行注入

    1、dao的类和接口

    Java代码  
    1. package com.cvicse.dao.impl;  
    2.   
    3. import com.cvicse.dao.PersonDao;  
    4.   
    5. public class PersonDaoBean implements PersonDao {  
    6.     public void add(){  
    7.         System.out.println("执行PersonDaoBean中的add()方法");  
    8.     }  
    9. }  
    Java代码  
    1. package com.cvicse.service;  
    2.   
    3. public interface PersonService {  
    4.     public void save();  
    5. }  

     2、service类

    Java代码  
    1. import com.cvicse.dao.PersonDao;  
    2. import com.cvicse.service.PersonService;  
    3.   
    4. public class PersonServiceBean implements PersonService {  
    5.     private PersonDao personDao;  
    6.     private String name;      
    7.       
    8.     public PersonServiceBean(PersonDao personDao, String name) {  
    9.         this.personDao = personDao;  
    10.         this.name = name;  
    11.     }  
    12.   
    13.     public void save(){  
    14.         System.out.println(name);  
    15.         personDao.add();  
    16.     }  
    17. }  

     要在构造函数进行注入,应采用如下的方式进行配置

    Xml代码  
    1. <bean id="personDao" class="cn.itcast.dao.impl.PersonDaoBean" />   
    2. <bean id="personService" class="cn.itcast.service.impl.PersonServiceBean">  
    3. <constructor-arg index="0" type="cn.itcast.dao.PersonDao" ref="personDao"/>  
    4. <constructor-arg index="1" type=“java.lang.String” value="基本类型"/>   
    5.  </bean>   

    方法二:使用setter方法进行注入

     采用setter的方法进行注入时,基本属性和业务对象的注入有所不同,而基本类型的中的集合注入也是应该注意的。

    1、service类

    Java代码  
    1. public class PersonServiceBean implements PersonService {  
    2.     private Set<String> sets = new HashSet<String>();  
    3.     private List<String> lists = new ArrayList<String>();  
    4.     private Properties properties = new Properties();  
    5.     private Map<String, String> maps = new HashMap<String, String>();  
    6.       
    7.     public Map<String, String> getMaps() {  
    8.         return maps;  
    9.     }  
    10.   
    11.     public void setMaps(Map<String, String> maps) {  
    12.         this.maps = maps;  
    13.     }  
    14.   
    15.     public Properties getProperties() {  
    16.         return properties;  
    17.     }  
    18.   
    19.     public void setProperties(Properties properties) {  
    20.         this.properties = properties;  
    21.     }  
    22.   
    23.     public Set<String> getSets() {  
    24.         return sets;  
    25.     }  
    26.   
    27.     public void setSets(Set<String> sets) {  
    28.         this.sets = sets;  
    29.     }  
    30.   
    31.     public List<String> getLists() {  
    32.         return lists;  
    33.     }  
    34.   
    35.     public void setLists(List<String> lists) {  
    36.         this.lists = lists;  
    37.     }  
    38.   
    39.     public void save(){  
    40.           
    41.     }  
    42. }  

    Java代码  
    1.   

    2.XML中的配置(注意,各种类型都具有了)

    Java代码  
    1. <bean id="personDao" class="cn.itcast.dao.impl.PersonDaoBean" />   
    2. <bean id="personService" class="cn.itcast.service.impl.PersonServiceBean">  
    3. <!--业务对象的注入方式 -->  
    4.   <property name="personDao" ref="personDao" />   
    5. <!--基本属性的注入方式 -->  
    6.    <property name="name" value="itcast" />   
    7.   <property name="id" value="88" />   
    8. <!--集合的注入方式 -->  
    9. <property name="sets">  
    10. <set>  
    11.   <value>第一个</value>   
    12.   <value>第二个</value>   
    13.   <value>第三个</value>   
    14.   </set>  
    15.   </property>  
    16. <property name="lists">  
    17. <list>  
    18.   <value>第一个list元素</value>   
    19.   <value>第二个list元素</value>   
    20.   <value>第三个list元素</value>   
    21.   </list>  
    22.   </property>  
    23. <property name="properties">  
    24. <props>  
    25.   <prop key="key1">value1</prop>   
    26.   <prop key="key2">value2</prop>   
    27.   <prop key="key3">value3</prop>   
    28.   </props>  
    29.   </property>  
    30. <property name="maps">  
    31. <map>  
    32.   <entry key="key-1" value="value-1" />   
    33.   <entry key="key-2" value="value-2" />   
    34.   <entry key="key-3" value="value-3" />   
    35.   </map>  
    36.   </property>  
    37.   </bean>  

     另外,对于业务对象,还具有如下的内部bean配置方式,但如果这样配置了,则该bean只能由外边的bean用

     

    Xml代码  
    1. <bean id="personService" class="cn.itcast.service.impl.PersonServiceBean">  
    2. <!-- 使用内部bean进行注入-->   
    3.             <property name="personDao">  
    4.                 <bean class="cn.itcast.dao.impl.PersonDaoBean"/>  
    5.             </property>  
    6.   </bean>  

    方法三:使用Filed方式注入(即注解方式注入)






  • 相关阅读:
    js4——字符转化
    js3——表格下拉
    笔记展现
    js2——定时跳转
    js学习——1
    明明在/etc/my.cnf 配置了mysql.sock,为什么会在/var/lib/mysql/mysql.sock 里边寻找
    RBAC用户权限管理数据库设计
    mysql 字节问题,中文和数字
    PHP闭包
    一致性哈希算法原理
  • 原文地址:https://www.cnblogs.com/jeffen/p/6155484.html
Copyright © 2020-2023  润新知