通過註解方式配置Spring的IoC

2021-07-26 11:41:39 字數 3285 閱讀 6769

1.背景介紹

到目前為止,採用ssh框架,環境已經配置好。

2.通過註解的環境配置

1.新增命名空間

xmlns:context=""

命名空間的特點就是ns(namespace)結尾

xsd用來約束xml檔案的語法和格式。

約束xml檔案格式有兩種標準:1.dtd(.dtd)     2.schema(.xsd)

預設的命名空間指向xsd,這個xsd規定了bean的語法。

2.指向xsd

那麼新增的context命名空間也要指向乙個xsd,所以在xsi:schemalocation中新增

/spring-context-4.1.xsd

xsi:schemalocation 宣告了目標命名空間的模式文件.

xsi:schemalocation屬性的值由乙個

uri引用對

組成,兩個uri之間以空白符分隔。第乙個uri是命名空間的名字,第二個uri給出模式文件的位置,

模式處理器

將從這個位置讀取模式文件,

該模式文件的目標命名空間必須與第乙個uri相匹配

3.新增開啟註解配置標籤

新增開啟註解配置標籤

是用於啟用那些已經在spring容器裡註冊過的bean(無論是通過xml的方式還是通過package sanning的方式)上面的註解。

3.通過注釋初始化dao的類

1.要在dao層中實現類,

需要在要實現的類前面新增註解:

@component (把普通pojo例項化到spring容器中,相當於配置檔案中的)

@scope  用來配置spring bean的作用域,它標識bean的作用域。一遍用到的值為:1.singleton     2.prototype

singleton: 當把乙個bean定義設定為singleton作用域時,spring ioc容器只會建立該bean定義的唯一例項。

prototype

prototype作用域部署的bean,每一次請求(將其注入到另乙個bean中,或者以程式的方式呼叫容器的

getbean()

方法)都會產生乙個新的bean例項,相當與乙個new的操作,對於prototype作用域的bean,有一點非常重要,那就是spring不能對乙個prototype bean的整個生命週期負責,容器在初始化、配置、裝飾或者是裝配完乙個

prototype例項後,將它交給客戶端,隨後就對該prototype例項不聞不問了。

scope的執行緒安全問題:

singleton是單態模式的 ,有ioc容器管理 ,當然不是執行緒安全的啦 ,不過所謂的執行緒安全也是相對的,

如果你的類是沒有狀態的(沒有類的公用屬性,不會同時被多個執行緒改變), 那用singleton 的效能要高一些 ,因為只有乙個例項 。

如果你的類是有狀態的(有公用屬性,可能被不同的執行緒改變)

,那就必須顯示的設定為prototype了。

4.spring的配置檔案中新增配置項

程式就會到指定的包名下去找初始化好的bean。

5.通過注釋初始化service的類

因為dao層是要被service層所呼叫的,而service也要給別人呼叫。既然會被呼叫,那就需要初始化,所以在service的1.實現類中也新增初始化註解:

@component

(value=

"service"

)@scope

(value=

"singleton"

) 2.一旦初始化了類,那就需要去

3.除了新增註解之外,service因為呼叫到了dao,所以需要把dao裝配進來,注入的方式有兩種:

i.setter&getter注入     ii.建構函式注入   iii.介面注入(少用)

這裡用setter&getter的注入方式。(用建構函式注入,設定resource會出錯)

依賴注入(di):兩個物件之間的依賴關係在程式執行時由外部容器動態的注入依賴行為方式稱為依賴注入 (di) 。 di 是 ioc 的一種形式。

你的類不會去查詢或是例項化它們所依賴的類。控制恰好是反過來的,某種容器會設定這種依賴關係。

4.在setter方法前新增註解:

(區別一下:hibernate註解寫在get方法上)

@resource

(name=

"sqldao"

) name表示把filedao傳過來

@resource

註解被用來啟用乙個命名資源(named resource)的依賴注入

5.通過注釋呼叫之前的service類

1.因為action這一層呼叫到了service類,所以在setter方法前新增註解:

到這裡註解的配置就已經結束了,因為註解配置需要寫在源**裡邊。當手頭沒有源**的時候,就只能用xml配置。做個簡單的總結,註解:

1.@component     在spring容器中初始化乙個bean

2.@resource     裝配bean

3.@scope     設定單例項與多例項

通過註解方式配置Spring實現Ioc

1.首先需要配置spring,支援註解 加上這三句話在beans中 配置xml命名空間 xmlns context spring context 4.1.xsd 提示一下 xsd檔案,是用來約束xml檔案的語法和格式 約束xml檔案,有兩種標準 dtd dtd schema xsd 2.初始化和裝配...

使用註解方式配置Spring

在配置檔案中新增如下 spring會自動掃瞄改包下的所有註解 component user 當分不清時用它 controller user web層 service user service層 repository dao層 不寫名稱預設是類名小寫 scope scopename prototype...

spring 註解方式配置Bean

spring能夠從classpath下自動掃瞄,偵測和例項化具有特定註解的元件特定元件包括 component 基本註解,標示了乙個受spring管理的bean元件 respository 標識資料訪問層 dao層 元件 service 標識服務層 業務層 元件 controller 標識控制層 表...