spring 配置註解詳解

2021-09-13 17:25:49 字數 2554 閱讀 3898

這是之前學習spring3時整理的註解解釋,新的註解例如spring4和springboot中的註解會另找時間整理

@component

@component是所有受spring 管理元件的通用形式,

@component註解可以放在類的頭上,

@component不推薦使用。

@controller

@controller對應表現層的bean,也就是action

@controller如果不指定其value,則預設的名字為這個類的類名首字母小寫

@controller指定了value,或制定了bean名稱,則使用value作為bean的名字

注:實際上,使用@component,也可以起到@controller同樣的作用

注:@component/@controller/@repository/@service起到的是相同的作用,將物件作為bean註冊進spring容器中

@scope

@scope表示指明對應的bean的作用域範圍

@scope一般用在@controller下面

@scope的五個作用域分別是:singleton/prototype/request/session/global

@autowried

@autowired 注釋標註在成員變數上 ,它可以對類成員變數、方法及建構函式進行標註,完成自動裝配的工作。

@autowired 根據bean 型別從spring 上線文中進行查詢,註冊型別必須唯一,否則報異常。

@requestparam

@requestparam將請求的引數繫結到方法中的引數上。

@requestparam的 required 屬性設定為false時,則自定義指定引數

@requestbody

@requestbody是指方法引數應該被繫結到http請求body上。寫在方法引數體裡面

@responsebody

@responsebody與@requestbody類似,它的作用是將返回型別直接輸入到http response body中。

注:最常用的我們使用ajax傳輸json,需要再類上面配置@responsebody。

@modelattribute

@modelattribute方法用來在model中填充屬性,如填充下拉列表、寵物型別或檢索乙個命令物件比如賬戶(用來在html表單上呈現資料)。

@modelattribute方法有兩種風格:一種是新增**屬性並返回它。另一種是該方法接受乙個模型並新增任意數量的模型屬性。

@modelattribute作用在方法引數上,表明該引數可以在方法模型中檢索到

注:這是spring mvc中重要的資料繫結機制,它省去了單獨解析每個表單字段的時間。

@cacheable 和@cacheflush 

@cacheable :宣告乙個方法的返回值應該被快取      例如:@cacheable(modelid = "testcaching")  

@cacheflush :宣告乙個方法是清空快取的觸發器     例如:@cacheflush(modelid = "testcaching") 

@resource  

@resource 預設按bean 的name 進行查詢,如果沒有找到會按type 進行查詢

@postconstruct 和@predestroy

@postconstruct 在方法上加上註解@postconstruct ,這個方法就會在bean 初始化之後被spring 容器執行

@predestroy 在方法上加上註解@predestroy ,這個方法就會在bean 被銷毀前被spring 容器執行。

@repository

與@controller 、@service 類似,都是向spring 上下文中註冊bean

@sessionattributes

@sessionattributes 只能宣告在類上,而不能宣告在方法上

例:@sessionattributes("user") // 將modelmap 中屬性名為user的屬性 

@sessionattributes() 

@sessionattributes(types = user.class)   

@sessionattributes(types = )   

@sessionattributes(types = ,value=) 

@initbinder

如果希望某個屬性編輯器僅作用於特定的 controller ,可以在 controller 中定義乙個標註 @initbinder 註解的方法,

可以在該方法中向 controller 了註冊若干個屬性編輯器 

@required

@required 負責檢查乙個bean在初始化時其宣告的 set方法是否被執行,

@required 註解只能標註在 setter 方法之上。

@qualifier

使用@autowired 時,如果找到多個同一型別的bean,則會拋異常,此時可以使用 @qualifier("beanname"),

明確指定bean的名稱進行注入,此時與 @resource指定name屬性作用相同

Spring基於註解的配置詳解

基礎類 public class student public void setsid integer sid public string getsname public void setsname string sname public string getsgrade public void s...

Spring 註解詳解

使用註解來構造ioc容器 在base package指明乙個包 表明com.om包及其子包中,如果某個類的頭上帶有特定的註解 component repository service controller 就會將這個物件作為bean註冊進spring容器。1 component component是...

Spring 註解詳解

當我們的專案越來越複雜時 配置檔案也會變得複雜 這樣不僅影響開發效率 還影響錯誤查詢 因此 spring 提供了註解方式開配置bean 使用註解需要準備工作 1.匯入 spring架包 2.引入約束檔案 context檔案 3.開啟掃瞄註解 常用註解 component 給user類加上該註解就等同...