SpringBoot註解整理歷史筆記

2021-09-29 21:54:50 字數 4173 閱讀 9780

一、@data註解的引用(前提是plugins安裝了lombok外掛程式)

註解作用:自動生成get、set**。

搜尋lombod plugin安裝重啟idea後引入dependence

org.projectlombok

lombok

1.16.10

完成即可使用!

二、@test註解的使用

pom引入dependence

junit

junit

4.9test

使用事例

@runwith(springrunner.class)

public class test

}

三、@reference、@resource、@autowired註解

@resource的作用相當於@autowired,只不過@autowired按bytype自動注入,而@resource預設按 byname自動注入

@reference是dubbo的註解,@resource是spring的

@reference也是注入,他一般注入的是分布式的遠端服務的物件,需要dubbo配置使用

總結區別:@reference注入的是分布式中的遠端服務物件,@resource和@autowired注入的是本地spring容器中的物件。

四、@restcontroller、@controller、@responsebody註解

@restcontroller註解相當於@responsebody + @controller合在一起的作用

// 一般用於介面 或 前後端分離

1.如果只是使用@restcontroller註解controller,則controller中的方法無法返回jsp,html頁面,配置的視**析器 internalresourceviewresolver不起作用,返回的內容就是return 裡的內容。

也可以通下面方法返回頁面具體

public modelandview login()

// 一般用於後台頁面

2.如果需要返回到指定頁面,則需要用 @controller 配合視**析器 internalresourceviewresolver 才行。

如果需要返回json,xml或自定義mediatype內容到頁面,則需要在對應的方法上加上@responsebody註解。

五、@configuration 、@bean、@componentscan註解

1.@componentscan:@controller,@service,@repository註解,檢視其原始碼你會發現,他們中有乙個共同的註解@component,沒錯@componentscan註解預設就會裝配標識了@controller,@service,@repository,@component註解的類到spring容器中.

2.@configuration:在配置類上新增@configuration,註解告訴了spring這是乙個配置類,相當於是乙個xml檔案。

3.@bean:新增@bean註解,相當於在xml檔案裡面寫了乙個bean標籤,通常和@configuration一起使用。

在某個類上使用@component註解,表明當需要建立類時,這個被註解的類是乙個候選類。就像是舉手。

總結:@componentscan用於掃瞄指定包下的類。就像看都有哪些舉手了。

@configuration的註解類標識這個類可以使用spring ioc容器作為bean定義的**。

@bean註解告訴spring,乙個帶有@bean的註解方法將返回乙個物件,該物件應該被註冊為在spring應用程式上下文中的bean。

六、@controller 、@service、@repository、@component 註解

1、@controller 控制器(注入服務)

用於標註控制層,相當於struts中的action層

2、@service 服務(注入dao)

用於標註服務層,主要用來進行業務的邏輯處理

3、@repository(實現dao訪問)

用於標註資料訪問層,也可以說用於標註資料訪問元件,即dao元件.

@repository註解類作為dao物件(資料訪問物件,data access objects)

這些類可以直接對資料庫進行操作有這些分層操作的話,**之間就實現了松耦合,**之間的呼叫也清晰明朗,便於專案的管理;

@repository註解在持久層中,具有將資料庫操作丟擲的原生異常翻譯轉化為spring的持久層異常的功能。

4、@component (把普通pojo例項化到spring容器中,相當於配置檔案中的

)泛指各種元件,就是說當我們的類不屬於各種歸類的時候(不屬於@controller、 @services等的時候),我們就可以使用@component來標註這個類。

可以理解為 @configuration是隨容器啟動開始載入的,始終存在的單例模式。 @component是使用一次即例項化一次

七、@pathvariable、@requestbody、@suppresswarnings註解

public void login(@requestbody string username,@requestbody string pwd)

2、@pathvariable("***")

通過 @pathvariable 可以將url中佔位符引數繫結到處理器類的方法形參中@pathvariable(「***「)

public modelandview test5(@pathvariable("id") long ids ,@pathvariable("name") string names){

3、@suppresswarnings註解主要用在取消一些編譯器產生的警告對**左側行列的遮擋,有時候這會擋住我們斷點除錯時打的斷點。

1. @suppresswarnings("unchecked") [^ 抑制單型別的警告]

2. @suppresswarnings("unchecked","rawtypes") [^ 抑制多型別的警告]

3. @suppresswarnings("unchecked") [^ 抑制所有型別的警告]

八、配置resttemplate的bean

十、@enablecaching、@enableasync、@enablescheduling、@primary

@enablecaching      開啟快取

@enableasync 開啟非同步註解

@enablescheduling 開啟定時任務

@primary 存在兩個相同的bean時候,使用且未指定時候預設使用的

十一、@requestparam與@requestbody註解

十二、@cacheable、@cacheevict、@cacheput

@cacheable標註的方法表述如果快取存在則不執行方法,快取不存在則執行方法並將結果儲存在快取中,unless排除什麼情況不進行快取

@cacheput標註的方法在執行前不會去檢查快取中是否存在之前執行過的結果,而是每次都會執行該方法,並將執行結果以鍵值對的形式存入指定的快取中。

cacheevict是用來標註在需要清除快取元素的方法或類上的。當標記在乙個類上時表示其中所有的方法的執行都會觸發快取的清除操作。

@cacheevict可以指定的屬性有value、key、condition、allentries和beforeinvocation。

其中value、key和condition的語義與@cacheable對應的屬性類似。即value表示清除操作是發生在哪些cache上的(對應cache的名稱);

key表示需要清除的是哪個key,如未指定則會使用預設策略生成的key;condition表示清除操作發生的條件。

springboot 註解總結

springboot註解知識點歸納 當實現rest ful web services時,response將一直通過response body傳送。controller 用於定義控制器類,在spring 專案中由控制器負責將使用者發來的url請求 到對應的服務介面 service層 restcontr...

Spring boot核心註解

這裡面必須注意的註解是 springbootconfiguration enableautoconfiguration componentscan 二 springbootconfiguration 這個註解其實可以當場configuration 三 enableautoconfiguration ...

springboot註解詳解

標註註解 restcontroller 標示當前類是乙個控制類,是springboot提供的基於restfull風格開發,該註解是乙個組合註解,由 controller和 responsebody構成,如果當前類標示restcontroller,則在返回資料是以json格式返回。postconstr...