Spring中的註解大全與詳解

2021-10-25 16:53:17 字數 3129 閱讀 5870

註解解釋@service 組合註解(組合了@component註解),應用在service層(業務邏輯層)

@reponsitory 組合註解(組合了@component註解),應用在dao層(資料訪問層)

@component 表示乙個帶注釋的類是乙個「元件」,成為spring管理的bean。當使用基於註解的配置和類路徑掃瞄時,這些類被視為自動檢測的候選物件。同時@component還是乙個元註解。

@autowired spring提供的工具(由spring的依賴注入工具(beanpostprocessor、beanfactorypostprocessor)自動注入。)

@resource jsr-250提供的註解

@inject jsr-330提供的註解

@configuration 宣告當前類是乙個配置類(相當於乙個spring配置的xml檔案)

@componentscan 自動掃瞄指定包下所有使用

@service,@component,@controller,@repository的類並註冊

@bean 註解在方法上,宣告當前方法的返回值為乙個bean。返回的bean對應的類中可以定義init()方法和destroy()方法,

@bean(initmethod=」init」,destroymethod=」destroy」)定義,在構造之後執行init,在銷毀之前執行destroy。

@aspect 宣告乙個切面(就是說這是乙個額外功能)

@after 後置建言(advice),在原方法前執行。

@before 前置建言(advice),在原方法後執行。

@around 環繞建言(advice),在原方法執行前執行,在原方法執行後再執行(@around可以實現其他兩種advice)

@pointcut 宣告切點,即定義攔截規則,確定有哪些方法會被切入

@transactional 宣告事務(一般預設配置即可滿足要求,當然也可以自定義)

@cacheable 宣告資料快取

@enableaspectjautoproxy 開啟spring對aspectj的支援

@value 值得注入。經常與sping el表示式語言一起使用,注入普通字元,系統屬性,表示式運算結果,其他bean的屬性,檔案內容,**請求內容,配置檔案屬性值等等

@propertysource 指定檔案位址。提供了一種方便的、宣告性的機制,用於向spring的環境新增propertysource。與@configuration類一起使用。

@postconstruct 標註在方法上,該方法在建構函式執行完成之後執行。

@predestroy 標註在方法上,該方法在物件銷毀之前執行。

@profile 表示當乙個或多個指定的檔案是活動的時,乙個元件是有資格註冊的。使用@profile註解類或者方法,達到在不同情況下選擇例項化不同的bean。@profile(「dev」)表示為dev時例項化。

@enableasync 開啟非同步任務支援。註解在配置類上。

@async 註解在方法上標示這是乙個非同步方法,在類上標示這個類所有的方法都是非同步方法。

@enablescheduling 註解在配置類上,開啟對計畫任務的支援。

@scheduled 註解在方法上,宣告該方法是計畫任務。支援多種型別的計畫任務:cron,fixdelay,fixrate

@conditional 根據滿足某一特定條件建立特定的bean

@enable* 通過簡單的@enable來開啟一項功能的支援。所有@enable註解都有乙個@import註解,@import是用來匯入配置類的,這也就意味著這些自動開啟的實現其實是匯入了一些自動配置的bean(1.直接匯入配置類2.依據條件選擇配置類3.動態註冊配置類)

@runwith 這個是junit的註解,springboot整合了junit。一般在測試類裡使用:@runwith(springjunit4classrunner.class) — springjunit4classrunner在junit環境下提供sprng testcontext framework的功能

@activeprofiles 用來宣告活動的profile–@activeprofiles(「prod」(這個prod定義在配置類中))

@enablewebmvc 用在配置類上,開啟springmvc的mvc的一些預設配置:如viewresolver,messageconverter等。同時在自己定製springmvc的相關配置時需要做到兩點:1.配置類繼承webmvcconfigureradapter類2.就是必須使用這個@enablewebmvc註解。

@pathvariable 放置在引數前,用來接受路徑引數。

@restcontroller 組合註解,組合了@controller和@responsebody,當我們只開發乙個和頁面互動資料的控制層的時候可以使用此註解。

@controlleradvice 用在類上,宣告乙個控制器建言,它也組合了

@component註解,會自動註冊為spring的bean。

@exceptionhandler 用在方法上定義全域性處理,通過他的value屬性可以過濾攔截的條件:@exceptionhandler(value=exception.class)–表示攔截所有的exception。

@initbinder 通過@initbinder註解定製webdatabinder(用在方法上,方法有乙個webdatabinder作為引數,用webdatabinder在方法內定製資料繫結,例如可以忽略request傳過來的引數id等)。

@enableautoconfiguration 此注釋自動載入應用程式所需的所有bean——這依賴於spring boot在類路徑中的查詢。該註解組合了@import註解,

@import註解匯入了enableautocofigurationimportselector類,它使用springfactoriesloader.loade***ctorynames方法來掃瞄具有meta-inf/spring.factories檔案的jar包。而spring.factories裡宣告了有哪些自動配置。

@enableautoconfiguration(核心)和@componentscan。可以通過

@autoconfigureafter 在指定的自動配置類之後再配置。例:@autoconfigureafter(webmvcautoconfiguration.class)

Spring註解大全

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

Spring註解大全(二)

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

Spring註解大全(三)

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