Spring註解大全

2021-10-06 20:39:11 字數 3656 閱讀 4697

spring4之後加入的註解,原來在@controller中返回json需要@responsebody來配合,如果直接用@restcontroller替代@controller就不需要再配置@responsebody,預設返回json格式。

@crossorigin

@restcontroller

public class fileuploadcontroller

}

用於標註業務層元件,說白了就是加入你有乙個用註解的方式把這個類注入到spring配置中

用來裝配bean,都可以寫在字段上,或者方法上。

預設情況下必須要求依賴物件必須存在,如果要允許null值,可以設定它的required屬性為false,例如:@autowired(required=false)

類定義處: 提供初步的請求對映資訊,相對於 web 應用的根目錄。

方法處: 提供進一步的細分對映資訊,相對於類定義處的 url。

用於將請求引數區資料對映到功能處理方法的引數上

在springmvc的controller中使用@modelattribute時,其位置包括下面三種:

詳細鏈結參考:

用來標記快取查詢。可用用於方法或者類中,

當標記在乙個方法上時表示該方法是支援快取的,

當標記在乙個類上時則表示該類所有的方法都是支援快取的。

引數列表

引數解釋例子

value

名稱@cacheable(value=

keykey

@cacheable(value=」c1」,key=」#id」)

condition

條件@cacheable(value=」c1」,condition=」#id=1」)

比如@cacheable(value=」usercache」) 標識的是當呼叫了標記了這個註解的方法時,邏輯預設加上從快取中獲取結果的邏輯,如果快取中沒有資料,則執行使用者編寫查詢邏輯,查詢成功之後,同時將結果放入快取中。

但凡說到快取,都是key-value的形式的,因此key就是方法中的引數(id),value就是查詢的結果,而命名空間usercache是在spring*.xml中定義.

@cacheable(value="usercache")// 使用了乙個快取名叫 accountcache   

public account getuserage(int id)

用來標記要清空快取的方法,當這個方法被呼叫後,即會清空快取。@cacheevict(value=」usercache」)

引數列表引數

解釋例子

value

名稱@cachevict(value=

keykey

@cachevict(value=」c1」,key=」#id」)

condition

快取的條件,可以為空

allentries

是否清空所有快取內容

@cachevict(value=」c1」,allentries=true)

beforeinvocation

是否在方法執行前就清空

@cachevict(value=」c1」,beforeinvocation=true)

@resource的作用相當於@autowired

只不過@autowired按bytype自動注入,

而@resource預設按 byname自動注入罷了。

@resource有兩個屬性是比較重要的,分是name和type,spring將@resource註解的name屬性解析為bean的名字,而type屬性則解析為bean的型別。所以如果使用name屬性,則使用byname的自動注入策略,而使用type屬性時則使用bytype自動注入策略。如果既不指定name也不指定type屬性,這時將通過反射機制使用byname自動注入策略。

@resource裝配順序:

如果同時指定了name和type,則從spring上下文中找到唯一匹配的bean進行裝配,找不到則丟擲異常

如果指定了name,則從上下文中查詢名稱(id)匹配的bean進行裝配,找不到則丟擲異常

如果指定了type,則從上下文中找到型別匹配的唯一bean進行裝配,找不到或者找到多個,都會丟擲異常

如果既沒有指定name,又沒有指定type,則自動按照byname方式進行裝配;如果沒有匹配,則回退為乙個原始型別進行匹配,如果匹配則自動裝配;

用來標記是在專案啟動的時候執行這個方法。用來修飾乙個非靜態的void()方法

也就是spring容器啟動時就執行,多用於一些全域性配置、資料字典之類的載入

被@postconstruct修飾的方法會在伺服器載入servlet的時候執行,並且只會被伺服器執行一次。postconstruct在建構函式之後執行,init()方法之前執行。predestroy()方法在destroy()方法執行執行之後執

被@predestroy修飾的方法會在伺服器解除安裝servlet的時候執行,並且只會被伺服器呼叫一次,類似於servlet的destroy()方法。被@predestroy修飾的方法會在destroy()方法之後執行,在servlet被徹底解除安裝之前

用於標註資料訪問元件,即dao元件

泛指元件,當元件不好歸類的時候,我們可以使用這個註解進行標註

用來配置 spring bean 的作用域,它標識 bean 的作用域。

預設值是單例

singleton:單例模式,全域性有且僅有乙個例項

prototype:原型模式,每次獲取bean的時候會有乙個新的例項

request:request表示該針對每一次http請求都會產生乙個新的bean,同時該bean僅在當前http request內有效

session:session作用域表示該針對每一次http請求都會產生乙個新的bean,同時該bean僅在當前http session內有效

global session:只在portal應用中有用,給每乙個 global http session 新建乙個bean例項。

預設情況下spring mvc將模型中的資料儲存到request域中。當乙個請求結束後,資料就失效了。如果要跨頁面使用。那麼需要使用到session。而@sessionattributes註解就可以使得模型中的資料儲存乙份到session域中、

引數:names:這是乙個字串陣列。裡面應寫需要儲存到session中資料的名稱。

types:根據指定引數的型別,將模型中對應型別的引數儲存到session中

value:和names是一樣的。

@controller

@sessionattributes(value=,types=)

public class scopeservice 

}

適用於bean屬性setter方法,並表示受影響的bean屬性必須在xml配置檔案在配置時進行填充。否則,容器會丟擲乙個beaninitializationexception異常。

當你建立多個具有相同型別的 bean 時,並且想要用乙個屬性只為它們其中的乙個進行裝配,在這種情況下,你可以使用 @qualifier 注釋和 @autowired 注釋通過指定哪乙個真正的 bean 將會被裝配來消除混亂

Spring註解大全(二)

目錄 定義切點,切點表示式 execution 許可權訪問符 返回值型別 方法所屬的類名包路徑.方法名 形參型別 異常型別 aspect component public class afterthrowingaspect 前置增強,配合 pointcut一起使用 aspect component ...

Spring註解大全(三)

目錄 所有方法在呼叫前,先執行此 modelattribute方法.a.標註在有返回值的方法上 當modelattribute設定了value,方法返回的值會以這個value為key,以引數接受到的值作為這個key對應的value,組成k v鍵值對,存入到model中,如下面的方法執行之後,最終相當...

Spring中的註解大全與詳解

註解解釋 service 組合註解 組合了 component註解 應用在service層 業務邏輯層 reponsitory 組合註解 組合了 component註解 應用在dao層 資料訪問層 component 表示乙個帶注釋的類是乙個 元件 成為spring管理的bean。當使用基於註解的配...