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。當使用基於註解的配...