因?yàn)閷懗绦虻臅r(shí)候有地方報(bào)錯(cuò)恋沃,我找了好久才發(fā)現(xiàn)原來是有個(gè)注解沒加、于是我學(xué)習(xí)了幾種注解。
@Controller:@Controller對(duì)應(yīng)表現(xiàn)層的Bean蛀缝,也就是Action,使用@Controller注解標(biāo)識(shí)類TestAction之后目代,就表示要把UserAction交給Spring容器管理屈梁,在Spring容器中會(huì)存在一個(gè)名字為"testAction"的action嗤练,這個(gè)名字是根據(jù)TestAction類名來取的。注意:如果@Controller不指定其value【@Controller】在讶,則默認(rèn)的bean名字為這個(gè)類的類名首字母小寫煞抬,如果指定value【@Controller(value="TestAction")】或者【@Controller("TestAction")】,則使用value作為bean的名字构哺。
@Scope:@Scope("type")表示將Action的范圍聲明為原型革答,可以利用容器的scope="type"來保證每一個(gè)請(qǐng)求有一個(gè)單獨(dú)的Action來處理,避免struts中Action的線程安全問題曙强。spring默認(rèn)scope是單例模式(scope="singleton")残拐,這樣只會(huì)創(chuàng)建一個(gè)Action對(duì)象,每次訪問都是同一Action對(duì)象碟嘴,數(shù)據(jù)不安全溪食,struts2是要求每次次訪問都對(duì)應(yīng)不同的Action,scope="type"可以保證當(dāng)有請(qǐng)求的時(shí)候都創(chuàng)建一個(gè)Action對(duì)象:
@Resource:默認(rèn)安裝名稱進(jìn)行裝配娜扇,名稱可以通過name屬性進(jìn)行指定错沃,如果沒有指定name屬性,當(dāng)注解寫在字段上時(shí)袱衷,默認(rèn)取字段名進(jìn)行安裝名稱查找捎废,如果注解寫在setter方法上默認(rèn)取屬性名進(jìn)行裝配。當(dāng)找不到與名稱匹配的bean時(shí)才按照類型進(jìn)行裝配致燥。但是需要注意的是登疗,如果name屬性一旦指定,就只會(huì)按照名稱進(jìn)行裝配嫌蚤。
@Component:當(dāng)某個(gè)類算比較中立的類的時(shí)候辐益,就用這個(gè)注解為它進(jìn)行標(biāo)注。
@Deprecated:@Deprecated的作用是對(duì)不應(yīng)該在使用的方法添加注釋脱吱,當(dāng)編程人員使用這些方法時(shí)智政,將會(huì)在編譯時(shí)顯示提示信息