1、接口注入(不推荐)

  2、getter,setter方式注入(比较常用)

  3、构造器注入(死的应用)

  关于getter和setter方式的注入


1.autowire="defualt"
2.autowire=“byName” 
3.autowire="bytype"
 


  详细解析注入方式

  例如:有如下两个类需要注入

  第一个类:


1.package org.jia; 
2.   
3.  public class Order { 
4.      private String orderNum; 
5.      @SuppressWarnings("unused") 
6.      private OrderItem orderitem; 
7.   
8.      public OrderItem getOrderitem() { 
9.          return orderitem; 
10.     } 
11.  
12.     public void setOrderitem(OrderItem orderitem) { 
13.         this.orderitem = orderitem; 
14.     } 
15.  
16.     public String getOrderNum() { 
17.         return orderNum; 
18.     } 
19.  
20.     public void setOrderNum(String orderNum) { 
21.         this.orderNum = orderNum; 
22.     }      
23. }
 


  第二个类:


1.package org.jia; 
2.  
3. public class OrderItem { 
4.     private String orderdec; 
5.  
6.     public String getOrderdec() { 
7.         return orderdec; 
8.     } 
9.  
10.     public void setOrderdec(String orderdec) { 
11.         this.orderdec = orderdec; 
12.     } 
13. }
 


  常用getter&&setter方式介绍

  方式第一种注入:


1.<?xml version="1.0" encoding="UTF-8"?>
2.<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
3.4.<beans>
5.    <bean id="orderItem" class="org.jia.OrderItem">
6.        <property name="orderdec" value="item00001"></property>
7.    </bean>
8.    <bean id="order" class="org.jia.Order" >
9.        <!-----注入变量 名字必须与类中的名字一样------->
10.        <property name="orderNum" value="order000007"></property>
11.         <!--注入对象 名字为orderitem,所属的类的应用id为orderItem-->
12.        <property name="orderitem" ref="orderItem"></property>
13.     
14.    --></bean>
15.</beans>
 


  方式第二种注入:byName


1.<?xml version="1.0" encoding="UTF-8"?> 
2.<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
3.<beans> 
4.    <!--此时的id必须与Order.java中所定义的OrderItem的对象名称一样了,不然会找不到--> 
5.    <bean id="orderitem" class="org.jia.OrderItem"> 
6.        <property name="orderdec" value="item00001"></property> 
7.    </bean> 
8.    <bean id="order" class="org.jia.Order"<span style="color:#ff0000;"> autowire="byName"</span>> 
9.        <property name="orderNum" value="order000007"></property> 
10.    </bean> 
11.</beans>
 
  方式第三种注入:byType


1.<?xml version="1.0" encoding="UTF-8"?>  
2.<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
3.<beans>  
4.    <!--按照byType注入则与id没有关系,可以随便定义id !!!但是不能出现多个此类的id-->  
5.    <bean id="orderitdfadafaem" class="org.jia.OrderItem">  
6.        <property name="orderdec" value="item00001"></property>  
7.    </bean>  
8.    <bean id="order" class="org.jia.Order" <span style="color:#ff0000;">autowire="byType"</span>>  
9.        <property name="orderNum" value="order000007"></property>  
10.    </bean>  
11.</beans>