zoukankan      html  css  js  c++  java
  • 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方式注入(即注解方式注入)






  • 相关阅读:
    [APM] OneAPM 云监控部署与试用体验
    Elastic Stack 安装
    xBIM 综合使用案例与 ASP.NET MVC 集成(一)
    JQuery DataTables Selected Row
    力导向图Demo
    WPF ViewModelLocator
    Syncfusion SfDataGrid 导出Excel
    HTML Table to Json
    .net core 2.0 虚拟目录下载 Android Apk 等文件
    在BootStrap的modal中使用Select2
  • 原文地址:https://www.cnblogs.com/jeffen/p/6155484.html
Copyright © 2011-2022 走看看