spring的容器(控制反轉、依賴注入)


一、spring的容器

  ”容器“是spring的一個重要概念,其主要作用是完成創建成員變量,並完成裝配。

  而容器的特點”控制反轉“和”依賴注入“是兩個相輔相成的概念。

  控制反轉:我們在使用一個類型的實例實現某個功能時,需要先new出該類型的一個實例,並賦值給我們聲明的某個引用變量,這樣我們才能夠使用該變量進行操作。而new和賦值本事我們自己的權限,此處便是將該控制權限反轉交給了spring。

  依賴注入:某個類型要完成一個功能往往需要其他類型的變量來完成,我們在程序中往往通過自己new的方式來完成這個需求,而在spring中,它會幫助我們將這種裝配的功能實現,這便是依賴注入。

 二、在系統中實現

  在spring中只使用IOC容器的話,那么前面命名空間的聲明只需要使用

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 

  在該標簽下聲明bean即可:

<bean id="name" class="com.brolanda.spring.p.Name">
  <property name="givenName" value="斯里" />
  <property name="middleName" value="蘭" />
  <property name="lastName" value="卡" />
</bean>

  我們需要在Name這個類中,聲明類型為String的變量名稱,對應property標簽的name屬性,並為每個屬性設置set、get方法,這樣spring才能夠幫你注入。

public class Name {
    private String givenName;
    private String middleName;
    private String lastName;
    public String getGivenName() {
        return givenName;
    }
    public void setGivenName(String givenName) {
        this.givenName = givenName;
    }
    public String getMiddleName() {
        return middleName;
    }
    public void setMiddleName(String middleName) {
        this.middleName = middleName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

  如果成員變量是其他自定義類型的實例,那么,我們需要先聲明該自定義類型的bean,然后再在調用類的聲明中引入對應的bean即可:

<bean id="person" class="com.brolanda.spring.p.Person">
      <property name="name">
           <ref bean="name" />
      </property>
</bean>

即:person是引用了上面聲明的name對象作為其成員變量。

整體如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM