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對象做爲其成員變量。
總體以下: