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

1、spring的容器spring

  」容器「是spring的一個重要概念,其主要做用是完成建立成員變量,並完成裝配。this

  而容器的特色」控制反轉「和」依賴注入「是兩個相輔相成的概念。spa

  控制反轉:咱們在使用一個類型的實例實現某個功能時,須要先new出該類型的一個實例,並賦值給咱們聲明的某個引用變量,這樣咱們纔可以使用該變量進行操做。而new和賦值本事咱們本身的權限,此處即是將該控制權限反轉交給了spring。code

  依賴注入:某個類型要完成一個功能每每須要其餘類型的變量來完成,咱們在程序中每每經過本身new的方式來完成這個需求,而在spring中,它會幫助咱們將這種裝配的功能實現,這即是依賴注入。xml

 2、在系統中實現對象

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

<?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便可:get

<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纔可以幫你注入。io

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便可:ast

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

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

總體以下:

相關文章
相關標籤/搜索