Spring容器三種注入類型

Spring注入有三種方式:java

一、Set注入(使用最多測試

二、構造器注入(使用很少)this

三、接口注入(幾乎不用)不作測試了spa


一、Set注入:所謂Set注入就是容器內部調用了bean的Set***方法,注意:xml文件中的名字必定要和對象中屬性的名字對應prototype

1
2
3
4
5
6
7
8
9
public class User {
     private Role role; //注意:配置文件中property中name的名字跟這個屬性的名字必定要相同,否則會找不到
     public Role getRole() {
         return role;
     }
     public void setRole(Role role) {
         this .role = role;
     }
}

配置文件配置方式code

1
2
3
4
5
< bean id = "role" class = "com.fz.entity.Role" ></ bean >
 
< bean name = "user" class = "com.fz.entity.User" scope = "prototype" >
     < property name = "role" ref = "role" ></ property >
</ bean >



二、構造器注入:xml

1
2
3
4
5
6
7
8
9
10
public class Role {
     private int id;
     private String roleName;
     
     public Role( int id, String roleName) {
         super ();
         this .id = id;
         this .roleName = roleName;
     }
}

構造方法注入須要傳參數:一、使用類型傳參數  二、使用索引傳參數(建議)對象

1
2
3
4
5
6
7
8
9
10
11
< bean id = "role" class = "com.fz.entity.Role" >
     <!-- 一、使用類型給構造器傳參數 -->
     <!-- <constructor-arg type="int" value="1"/>
          <constructor-arg type="java.lang.String" value="管理員"/>
      -->
 
     <!-- 二、使用索引給構造器傳參數 -->
     < constructor-arg index = "0" value = "2" />
     < constructor-arg index = "1" value = "超級管理員" />
     <!-- 類型和索引能夠結合使用,可是不能同時使用,也就是說構造器裏有幾個參數,這裏也就有幾個constructor-arg -->
</ bean >


注意:在這裏<bean>標籤的名稱能夠用id也能夠用name索引

<bean id="user">和<bean name="user">結果都是同樣的,用id和用name的惟一區別就是,name能夠使用特殊字符,id則不行。接口

例如:

<bean name="user**" >這樣寫不會報錯,經過getBean也能夠獲取到

<bean id="user**" >這樣寫就直接會報錯








相關文章
相關標籤/搜索