spring
框架的核心功能
ioc(inversion of control)
,也就是通過
spring
容器進行物件的管理,以及物件之間組合關係的對映。通常情況下我們會在
xml配置檔案中進行
action
,service,dao
等層的宣告,然後並告知框架我們想要的注入方式,然後在類中宣告要組合類的
get,
set方法。而通過
spring
框架中註解的運用也就主要是解決這類問題的。而框架中另乙個核心知識
aop,
一種面向橫切面的方法程式設計,在程式中一般都是進行一次設定就可以的,所以都還放在配置檔案中。例如宣告式事物的設定,一次設定,後邊我就不用管了,所以這個沒有必要使用註解進行簡化。因為工作量都差不多。好了,看一下在
spring
中如何使用註解進行開發吧!
一,首先需要在配置檔案中增加命名空間的和約束檔案:
二,開啟
spring
的註解功能,這樣
spring
環境才會進行指定位置的掃瞄,進行類之間的關聯組合:
三,宣告註解類,讓
spring
框架可以識別: 1
,類的分層註解,由於我們後台開發都是分為三層進行開發的,所以
spring
框架提供了三種對於不同層的註解方式:
控制層:
@controller
服務層:
@service
持久層:
@repository
類似於我們配置檔案中的:
預設情況下使用註解宣告的bean物件id名稱為:類名稱的首字母小寫,一般不需要我們進行設定,如果想要設定時,例如我們指定的是實現類,而名字指向了介面,直接新增
value
屬性即可:@service(
value
="name"),當然
value
是可以省略的。
spring
框架還為我們提供了代替上邊三個分層註解的通用註解:
@com
ponent.
當然提倡大家使用分層註解更好一些,區分層次比較明確。 2
,自動裝配功能的實現物件之間的組合關係,在屬性前邊指定下邊的註解:
@autowired : 採用型別的方式完成自動裝配 : bytype
@resource : 採用名稱+型別的方式完成自動裝配 : byname +bytype,此種方法推薦使用。 另外
spring
提供的兩種註解的自動裝配功能,屬性不需要宣告
set,get
方法也可以完成組合功能,這是非常方便的。 3
,在宣告
action
時,需要指定其為多例的,解決執行緒安全的問題,在配置檔案中我們通常會這樣宣告
action
的類:
而在spring
註解開發中也提供了類似的屬性來解決此問題,在
action
類前邊設定如下:
@scope("prototype")
4,利用配置檔案宣告
dao層類時,通常是這樣的:
而,註解開發的方法如何進行
session
factory
的注入呢?由於
dao層繼承了父類hibernatedaosupport,而在父類中有這樣乙個方法:
//父類中的sessionfactory的set注入方法
public final void setsessionfactory(sessionfactory sessionfactory)
}
這是session
factory
的set
注入方法,所以如果我們能夠重寫此方法,在此方法上進行
@resource
註解,即可解決我們的問題,但是可以看到此方法是用
final
進行修飾的,所以通常情況下,我們採用下邊的這種方法進行解決:
@repository("orgdao")
public class orgdaoimpl extends hibernatedaosupport implements orgdao
}
這樣,dao
層的session
factory
就進行了注入,我們可以正常編寫我們的
dao層**了。當然了對於
dao層如果我們使用了
ibatis
,同樣可以使用這種方法進行
ibatis
核心物件
sqlmapclient
的注入。
綜上,為
spring
框架的註解開發常用註解,總體感覺還是比較簡單,最起碼相對其它兩個框架而言,主要是通過註解完成物件的管理,和物件之間的組合,即
spring
的ioc
功能。註解的開發還是能大大提高我們的開發效率的,但是還是那句話,它在一定程度上違背了
ocp原則,所以大力推薦使用註解的開發的前提還是我們的需求比較固定,變動較小。
Spring基礎之三 annotation配置注入
用annotation配置只在源 相應的地方加入annotation即可,xml就不用再來回來去改了,開發時候快,不過我覺得沒xml清楚。其中這兩句是新加且必須的,新加了乙個命名空間 xml的namespacexmlns context 其實annotation全寫對了的話,配置檔案就是最上邊那樣了...
Annotation(三) Spring註解開發
spring框架的核心功能ioc inversion of control 也就是通過spring容器進行物件的管理,以及物件之間組合關係的對映。通常情況下我們會在xml配置檔案中進行action,service,dao等層的宣告,然後並告知框架我們想要的注入方式,然後在類中宣告要組合類的get,s...
SSH三大框架之 annotation之我見
關於annotation annotation說白了就是代替之前用的map對映檔案,反映射關係放到了model類裡面。這裡說明五種情況 以student的model類為例 第一種是id號 例如 student的id號 第二種是普通的字段 例如 student的姓名name 第三種是牽扯到兩個表的ma...