<!-- Bean元素:使用該元素描述須要spring容器管理的對象
class屬性:被管理對象的完整類名.
name屬性:給被管理的對象起個名字.得到對象時根據該名稱得到對象.
能夠重複.可使用特殊字符.
id屬性: 與name屬性如出一轍.
名稱不可重複.不能使用特殊字符.
結論: 儘可能使用name屬性.
-->
<bean name="student" class="com.lsk.Student" ></bean>
<!--
能夠經過import屬性導入其餘spring配置文件
<import resource="路徑/*.xml"/>
-->
(1)、IOC:Inverse Of Control,即控制反轉,將對象建立的方式交給了 Spring 容器;java
(2)、DI:Dependency Injection,即依賴注入,IOC 的實現須要 DI 支持。web
(1)、Spring BeanFactory 容器
它是最簡單的容器,給 DI 提供了基本的支持,它用 org.springframework.beans.factory.BeanFactory 接口來定義。BeanFactory 或者相關的接口,如 BeanFactoryAware,InitializingBean,DisposableBean,在 Spring 中仍然存在具備大量的與 Spring 整合的第三方框架的反向兼容性的目的。spring
在 Spring 中,有大量對 BeanFactory 接口的實現。其中,最常被使用的是 XmlBeanFactory 類。這個容器從一個 XML 文件中讀取配置元數據,由這些元數據來生成一個被配置化的系統或者應用。app
在資源寶貴的移動設備或者基於 applet 的應用當中, BeanFactory 會被優先選擇。不然,通常使用的是 ApplicationContext,除非你有更好的理由選擇 BeanFactory。框架
(2)、Spring ApplicationContext 容器函數
該容器添加了更多的企業特定的功能,例如從一個屬性文件中解析文本信息的能力,發佈應用程序事件給感興趣的事件監聽器的能力。該容器是由 org.springframework.context.ApplicationContext 接口定義。spa
ApplicationContext 包含 BeanFactory 全部的功能,通常狀況下,相對於 BeanFactory,ApplicationContext 會被推薦使用。code
最常被使用的 ApplicationContext 接口實現(類):xml
FileSystemXmlApplicationContext:該容器從 XML 文件中加載已被定義的 bean。在這裏,你須要提供給構造器 XML 文件的完整路徑對象
ClassPathXmlApplicationContext:該容器從 XML 文件中加載已被定義的 bean。在這裏,你不須要提供 XML 文件的完整路徑,只需正確配置 CLASSPATH 環境變量便可,由於,容器會從 CLASSPATH 中搜索 bean 配置文件。
(1)、set方法注入:
" class="com.lsk.Student" ><bean name="student
<!--值類型注入: 爲stu對象中名爲name的屬性注入"孔乙己"做爲值 -->
<property name="name" value="孔乙己" ></property>
<property name="age" value="22" ></property>
<property name="grade" value="大三" ></property>
<property name="rang" value="1" ></property>
<!-- 引用類型注入: 爲course屬性注入下方配置的course對象 -->
<property name="course" ref="course" ></property>
</bean>
<!-- 將course對象配置到容器中 -->
<bean name="course" class="com.lsk.Course" >
<property name="name" value="Java開發" ></property>
<property name="page" value="112" ></property>
</bean>
(2)、構造函數注入:
<bean name="stu1" class="com.spring.bean.Student" >
<!-- name屬性: 構造函數的參數名 -->
<!-- index屬性: 構造函數的參數索引 -->
<!-- type屬性: 構造函數的參數類型-->
<constructor-arg name="name" index="0" type="java.lang.Integer" value="compasser" ></constructor-arg>
<constructor-arg name="course" ref="course" index="1" ></constructor-arg>
</bean>