一、Spring之HelloWorld
1.導入所需的jar
a.一般方法
commons-logging-1.1.1.jar
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
b.Maven
<properties>
<spring.version>4.0.0.RELEASE</spring.version>
<commons.logging.version>1.1.1</commons.logging.version>
<junit.version>4.12</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons.logging.version}</version>
</dependency>
<!-- 配置junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
2.創建applicationContext.xml配置文件
a.創建Spring Bean Configuration File
b.創建IOC容器,並容器中獲取bean
二、IOC容器
1.IOC(Inversion of Control):其思想是反轉資源獲取的方向. 傳統的資源查找方式要求組件向容器發起請求查找資源. 做為 回應容器適時的返回資源. 而應用了IOC容器之後, 則是容器主動的將資源推送給他所管理的組件, 組件所要做得僅是選擇一種合適的方式來接受資源.這種行為也被稱為查找的被動形式
2.BeanFactory:面向框架本身的.是IOC容器的基礎設施.
3..ApplicationContext:面向開發者.
ClasspathXmlApplicationContext.
三、依賴注入
1.DI(Dependency Injection) — IOC 的另一種表達方式:即組件已一些預先定義好的方式(例如:setter方法)接受來自如容器的資源注入. 相對於IOC而言,這種表達方式更直接.
2.set方式注入:需提供成員變量對應的SET方法.
3.建構式注入:提供對應的建構器.
4.注入的细節
a.如果遇到特殊字符的注入:
>1.使用轉移字符/實體,可以參可手冊
>2.使用<![CDATA[...]]>的方式****
b.可以使用value/ref属性的方式注入,也可以使用<value>/<ref>子標籤的方式注入
4.List/Map類型的注入
a.List/Set/Array:Spring提供了對應的<list> <set> <array>標籤來注入對應的類型的值.
b.Map:Spring提供了<map>以及<entry>子標籤來進行map類型值的注入.
5.内部bean:定義到一個bean的内部的bean。内部bean只能在内部使用.
四、p命名空間
a.首先使用前需要導入p命名空间
b.在<bean>標籤中使用 p:属性名/ p:属性名-ref 的方式進行值的注入
五、自動裝配
a.自動裝配引用類型的屬性.
b.使用autowire属性來指定裝配的方式
c.自動裝配的方式:
byName:通過要裝配的属性的名字與 IOC容器中bean的id值進行匹配
byType:通過要裝配的属性的類型與 IOC容器中bean的class值進行匹配,如果匹配到多個兼容的類型,會有異常.
六、bean之間的關係
a.繼承:繼承後可以複寫父bean的屬性
b.依賴: 依賴就是指定關係,並不會賦值。
七、bean的作用域
a.singleton: 單例(默認值),在IOC容器中,只有一個該bean的實例物件.並且該bean的物件,會在IOC容器初始化時創建
b.prototype: 原型,在IOC容器中,有多個该bean的實例物件.不會在IOC容器初始化的時候創建,而是在每次getBean的時候,才會創建一個新的物件返回
c.request:一次請求期間
d.session:一次會話期間.
八、引入外部化的配置文件
db.properties:
九、bean的生命周期
a.調用建構式創建物件
b.給物件的屬性設置值
c.調用init方法進行初始化
d.使用物件
e.調用destroy方法進行物件的銷毀.
十、bean的配置方式
a.全類名(反射)的方式
b.工廠方法
>.靜態工廠方法
>.實例工廠方法
c.FactoryBean
原文:https://www.cnblogs.com/frank-lai/p/10575103.html