【Java高級工程師蛻變之路】010 Spring IOC的應用

實現說明

image

BeanFactory與ApplicationContext的區別

BeanFactory是整個Spring框架中IOC容器的頂層接口,主要定義容器的基本規範,ApplicationContext是BeanFactory的子接口,具備BeanFactory的所有功能。

一般稱BeanFactory爲IOC的基礎容器,ApplicationContext是容器的高級接口,有更多功能,比如國際化、資源訪問等

image

純XML模式

bean實例化的三種方式

方式一:無參構造器(推薦)

<bean id="connectionUtils" class="com.test.transfer.utils.ConnectionUtils"></bean>

方式二:靜態方法

<bean id="connectionUtilsStatic" class="com.test.transfer.utils.createConnectionFactory" factory-method="getInstanceStatic"/>

方式三:實例化方法

<bean id="createConnectionFactory" class="com.test.transfer.utils.createConnectionFactory"/>
<bean id="connectionUtilsInstance" factory-bean="createConnectionFactory" factory-method="getInstance"/>

bean的作用範圍和生命週期

scope:定義bean的作用範圍(默認爲singleton)

Singleton:單例,IOC容器中只有一個對象

單例模式對象的生命週期與容器相同

prototype:原型,每次請求都是新對象

多例模式Spring只負責創建,不負責銷燬

request

session

application

websocket

bean的屬性

id

class

name

factory-bean

factory-method

scope

init-method:初始化方法,必須是無參方法

destroy-method:對象銷燬前執行,只有在scope爲sington的時候有效

DI的依賴注入方式

set注入

使用property標籤,注入bean使用ref,注入普通值用value

構造器注入

使用constructor-arg標籤,屬性主要使用index/name,ref,value

複雜類型

array:array子標籤,value/ref

map:map子標籤,entry->key/value

set:set子標籤

Properties:props子標籤,prop->key

xml與註解相結合模式

純xml很少使用

引入註解不需要額外的jar

IOC容器的啓動仍然從加載xml開始

使用規則:

第三方使用xml,自定義使用註解

@Autowired

@Qualifier(Autowired無法區分類型的時候結合Autowired,用於區分具體是注入那個類型)

@Resource(jdk11已經移除,需要引入javax.annotaton-api包使用)

純註解模式

@Configuration:標記爲配置類

@CommonentScan:替代context:component-scan

@PropertySource:引入外部資源文件

@Import引入其他配置類

@Value:變量賦值

@Bean:自定對象注入到IOC容器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章