用於標註控制層,並且把該類注入到spring容器中,如果不指定預設的beanname為該類的類名(首字母小寫),指定的話通過@controller("beanname")自定義。
用於標註業務層,功能和@controller沒本質的區,只是為了讓**的結構清晰,層次分明,可能在以後的版本中會為各自的註解新增特定的功能(@controller和@service互用程式執行不會報錯,但是不建議這樣做)。
用來標註資料層同@controller和@repository一樣
用於進行資源的請求對映,可以放在方法和類上面。
1.既放在方法也放在類上,訪問的url為:http://localhost:8080/專案名/haha/selectuserbyid
@controller
public
class
usercontroller
2.只放在方法上,訪問的url為: http://localhost:8080/專案名/selectuserbyid
@controller
public
class
usercontroller
@resource是j2ee的註解,有兩個屬性比較重要,@resource(name=" ")和@resource(type=" "),如果指定了name屬性,那麼就在容器裡尋找匹配的id等於name的bean,找不到則丟擲異常。如果指定的是type屬性,則在容器裡面查詢型別匹配的唯一的bean,找不到或者找到了多個都會丟擲異常。如果既沒有指定name,也沒有指定type,則預設用byname方式進行裝配,如果沒有則去按照bytype型別進行匹配。
@autowired是spring的註解,預設按照bytype型別進行匹配,如果找不到會報錯,但是@autowired(required = false)將required設定為false即使找不到也不會報錯。預設情況下只允許乙個唯一匹配的型別的bean,如果匹配到多個則會報錯,這個時候加上@autowired@qualifier("beanname"),則會根據指定的beanname進行匹配。
在方法上加上該註解,將controller中方法的返回的物件通過適當的轉換器轉換為指定的格式,然後直接寫入resposne的body中返回到客戶端,一般返回的json和xml資料。具體使用如下:
註解方式的對映器和介面卡<.mvc:annotation-driven.>,他可以根據classpath中的內容提供一些功能,其中就包括支援讀寫json,但是classpath中必須有jackson。因此,只需要開啟註解方式的對映器和介面卡,並且在classpath中匯入jackson的架包,然後再方法上加@responsebody註解,放回的物件就會被轉換成json格式,並且寫入response的body中返回給客戶端。
@responsebody
public user selectuserbyidnine()
說明:前端控制器呼叫介面卡來處理這個方法,處理器介面卡執行完將返回的結果轉換成json格式的資料,不再返回給前端控制器進行後面的流程,而是直接把資料寫到了resoponse的body體中。
resful規則的支援,用於獲取resful規則的url中的變數的值
public string seletuserbyidfive(@pathvariable("id") integer haha,httpservletrequest request)
如上所示,如訪問的url為localhost:8080/專案明/selectuserbyidfive/2,則方法繫結的變數haha的值為2, 若@pathvariable(「」)中不指定url中的變數名,則後面繫結的引數名必須和url中的變數名一致如:@pathvariable integer id。
@requestparam註解應該是對request.getparameter()的封裝,從請求的request中獲取請求的引數的值,並且把獲取的string型別的引數指定的轉化為簡單型別的引數進行繫結。該註解有三個屬性:defaultvalue,required,value。value設定要獲取的request請求中的引數名,required設定是否必須繫結有引數值的傳入,defaultvalue設定預設值。
public string selectuserbyidsix(@requestparam(value="userid",required=false) integer id)
如上:如果不設定value的時候,後面繫結的引數的名必須和request中請求的引數名一致。如果不設定required,required預設為true,required為true時,意思為必須有引數的繫結,則必須在request請求中存在繫結的引數名,如果設定required為false,則不要求必須有引數的繫結,當在reqeust中找不到繫結的引數名時,則設定後面繫結的引數的值為null,所有在這裡不能用int,否則報錯。
public string selectuserbyidsix(@requestparam(value="userid",required=false,defaultvalue="10") string id)
如上:defaultvalue設定預設值,只能是string型別,所以後面繫結的引數型別只能是string型別,不然報錯。
用於把request請求頭上的值繫結要方法的引數上。
host localhost:8080
0.9accept-language fr,en-gb;q=
0.7,en;q=
0.3accept-encoding gzip,deflate
accept-charset iso-
8859
-1,utf-
8;q=
0.7,*;q=
0.7keep-alive
300
public string seletuserbyidfive(@requestheader(value="keep-alive",required=false,defaultvalue="zhangrui") string header)
如上所示,@requestheader可以從request請求頭中取得keep-alive 的值為300,@requestheader的三個屬性的用法和@requestparam一樣,@requestparam和@requestheader從單詞的字面意思上就能看出來他們的異同。
spring全域性異常處理繼承handerexceptionresolver介面
Spring常用的註解
component取代 component id 取代 提供3個 component 註解衍生註解 功能一樣 取代 repository dao層 service service層 controller web層 依賴注入 給私有字段設定,也可以給 setter 方法設定 普通值 value 引用值...
Spring的常用註解
1 profile 在軟體開發的過程中,敏捷開發模式很常見,也就是每次都提交乙個小階段的測試。那麼可能是開發人員使用一套環境,而測試人員使用另一套環境,而這兩套系統的資料庫是不一樣的,這樣就有了在不同的環境中進行切換的需求了。spring也會對這樣的場景進行支援,在spring中我們可以定義bean...
Spring常用的註解
component 相當於在spring的xml配置檔案中寫了乙個bean標籤 屬性 value用於指定bean的id,若是不寫,預設為當前類名 此註解衍生出三個註解 autowired 自動注入 value spring 通過註解獲取 porperties檔案的內容,除了xml配置外,還可以通過 ...