1. 程式人生 > 程式設計 >Spring Bean常用依賴注入方式詳解

Spring Bean常用依賴注入方式詳解

一般而言,Spring的依賴注入有三種:構造器注入、setter注入以及介面注入。本文主要講構造器注入與setter注入。

1、構造器注入

為了讓Spring完成構造器注入,我們需要去描述具體的類、構造方法並設定構造方法的對應引數。

程式碼如下:

public class Role {

  private Long id;

  private String roleName;

  private String note;

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public String getRoleName() {
    return roleName;
  }

  public void setRoleName(String roleName) {
    this.roleName = roleName;
  }

  public String getNote() {
    return note;
  }

  public void setNote(String note) {
    this.note = note;
  }

  public Role(String roleName,String note) {
    this.roleName = roleName;
    this.note = note;
  }

  public Role() {

  }

  public void run() {
    System.out.println("roleName:" + roleName + ";" + "note:" + note);
  }
}

這個時候是沒有辦法利用無參的構造方法去建立物件的,為了使Spring能正確建立這個物件,需要在xml檔案中加入如下bean:

<bean id="role1" class="com.ssm.chapter.pojo.Role">
    <constructor-arg index="0" value="總經理" />
    <constructor-arg index="1" value="公司管理者" />
  </bean>

其中,constructor-arg元素用於定義類構造方法的引數,index用於定義引數的位置,而value是設定值,通過這樣定義spring便知道使用Role(String,String)這樣的構造方法去建立物件了。

2、使用setter注入

setter注入是Spring最主流的注入方式,它消除了使用構造器注入多個引數的可能性,可以把構造引數宣告為無參的,然後使用setter注入為其設定對應的值。需要注意的是,如果類中沒有建構函式,JVM會預設建立一個無參建構函式。xml程式碼清單如下:

 <bean id="role2" class="com.ssm.chapter.pojo.Role" >
    <property name="roleName" value="高階工程師" />
    <property name="note" value="重要人員" />
  </bean>

接著編寫測試類即可:

ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-cfg.xml");
Role role = (Role) ctx.getBean("role2");
role.run();

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。