Spring注解@Component、@Repository异剥、@Service瑟由、@Controller區(qū)別

Spring 2.5 中除了提供 @Component 注釋外,還定義了幾個(gè)擁有特殊語義的注釋,它們分別是:@Repository歹苦、@Service 和 @Controller青伤。

在目前的 Spring 版本中,這 3 個(gè)注釋和 @Component 是等效的殴瘦,但是從注釋類的命名上狠角,很容易看出這 3 個(gè)注釋分別和持久層、業(yè)務(wù)層和控制層(Web 層)相對應(yīng)蚪腋。

雖然目前這3 個(gè)注釋和 @Component 相比沒有什么新意丰歌,但 Spring 將在以后的版本中為它們添加特殊的功能。

所以屉凯,如果 Web 應(yīng)用程序采用了經(jīng)典的三層分層結(jié)構(gòu)的話立帖,最好在持久層、業(yè)務(wù)層和控制層分別采用上述注解對分層中的類進(jìn)行注釋悠砚。

@Service用于標(biāo)注業(yè)務(wù)層組件

@Controller用于標(biāo)注控制層組件(如struts中的action)

@Repository用于標(biāo)注數(shù)據(jù)訪問組件晓勇,即DAO組件

@Component泛指組件,當(dāng)組件不好歸類的時(shí)候灌旧,我們可以使用這個(gè)注解進(jìn)行標(biāo)注绑咱。

[java]?view plain?copy

@Service??

public?class?VentorServiceImpl?implements?iVentorService?{?????

}??

@Repository??

public?class?VentorDaoImpl?implements?iVentorDao?{???

}??


在一個(gè)稍大的項(xiàng)目中,如果組件采用xml的bean定義來配置枢泰,顯然會(huì)增加配置文件的體積描融,查找以及維護(hù)起來也不太方便。?

Spring2.5為我們引入了組件自動(dòng)掃描機(jī)制宗苍,他在類路徑下尋找標(biāo)注了上述注解的類稼稿,并把這些類納入進(jìn)spring容器中管理。

它的作用和在xml文件中使用bean節(jié)點(diǎn)配置組件時(shí)一樣的讳窟。要使用自動(dòng)掃描機(jī)制让歼,我們需要打開以下配置信息:

代碼

[html]?view plain?copy


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??

xmlns:context="http://www.springframework.org/schema/context"??

xsi:schemaLocation="http://www.springframework.org/schema/beans??

????????????????http://www.springframework.org/schema/beans/spring-beans-2.5.xsd??

????????http://www.springframework.org/schema/context??

http://www.springframework.org/schema/context/spring-context-2.5.xsd">???


?????


1.component-scan標(biāo)簽?zāi)J(rèn)情況下自動(dòng)掃描指定路徑下的包(含所有子包),將帶有@Component丽啡、@Repository谋右、@Service、@Controller標(biāo)簽的類自動(dòng)注冊到spring容器补箍。對標(biāo)記了 Spring's @Required改执、@Autowired、JSR250's @PostConstruct坑雅、@PreDestroy辈挂、@Resource、JAX-WS's @WebServiceRef裹粤、EJB3's @EJB终蒂、JPA's @PersistenceContext、@PersistenceUnit等注解的類進(jìn)行對應(yīng)的操作使注解生效(包含了annotation-config標(biāo)簽的作用)。


getBean的默認(rèn)名稱是類名(頭字母小寫)拇泣,如果想自定義噪叙,可以@Service(“aaaaa”)這樣來指定。

這種bean默認(rèn)是“singleton”的霉翔,如果想改變睁蕾,可以使用@Scope(“prototype”)來改變。

可以使用以下方式指定初始化方法和銷毀方法:

[java]?view plain?copy

@PostConstruct??

public?void?init()?{???

}???

@PreDestroy??

public?void?destory()?{???

}???

注入方式:

把DAO實(shí)現(xiàn)類注入到action的service接口(注意不要是service的實(shí)現(xiàn)類)中债朵,注入時(shí)不要new 這個(gè)注入的類子眶,因?yàn)閟pring會(huì)自動(dòng)注入,如果手動(dòng)再new的話會(huì)出現(xiàn)錯(cuò)誤序芦,

然后屬性加上@Autowired后不需要getter()和setter()方法壹店,Spring也會(huì)自動(dòng)注入。

在接口前面標(biāo)上@Autowired注釋使得接口可以被容器注入芝加,如:

[java]?view plain?copy

@Autowired??

@Qualifier("chinese")??

private?Man?man;???

當(dāng)接口存在兩個(gè)實(shí)現(xiàn)類的時(shí)候必須使用@Qualifier指定注入哪個(gè)實(shí)現(xiàn)類,否則可以省略射窒,只寫@Autowired藏杖。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市脉顿,隨后出現(xiàn)的幾起案子蝌麸,更是在濱河造成了極大的恐慌,老刑警劉巖艾疟,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件来吩,死亡現(xiàn)場離奇詭異,居然都是意外死亡蔽莱,警方通過查閱死者的電腦和手機(jī)弟疆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盗冷,“玉大人怠苔,你說我怎么就攤上這事∫翘牵” “怎么了柑司?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锅劝。 經(jīng)常有香客問我攒驰,道長,這世上最難降的妖魔是什么故爵? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任玻粪,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奶段。我一直安慰自己饥瓷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布痹籍。 她就那樣靜靜地躺著呢铆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹲缠。 梳的紋絲不亂的頭發(fā)上棺克,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機(jī)與錄音线定,去河邊找鬼娜谊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛斤讥,可吹牛的內(nèi)容都是我干的纱皆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼芭商,長吁一口氣:“原來是場噩夢啊……” “哼派草!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起铛楣,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤近迁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后簸州,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鉴竭,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年岸浑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搏存。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矢洲,死狀恐怖祭埂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兵钮,我是刑警寧澤蛆橡,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站掘譬,受9級特大地震影響泰演,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜葱轩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一睦焕、第九天 我趴在偏房一處隱蔽的房頂上張望藐握。 院中可真熱鬧,春花似錦垃喊、人聲如沸猾普。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽初家。三九已至,卻和暖如春乌助,著一層夾襖步出監(jiān)牢的瞬間溜在,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工他托, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掖肋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓赏参,卻偏偏與公主長得像志笼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子把篓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容