Spring Boot 常用註解彙總

2021-10-07 16:19:52 字數 4090 閱讀 3545

@target(elementtype.type)

@retention(retentionpolicy.runtime)

@documented

@inherited

@springbootconfiguration

@enableautoconfiguration

@componentscan(excludefilters = )

// ... 此處省略原始碼

}

@springbootconfiguration繼承自@configuration,二者功能也一致,標註當前類是配置類, 並會將當前類內宣告的乙個或多個以@bean註解標記的方法的例項納入到spring容器中,並且例項名就是方法名。

@enableautoconfiguration可以幫助springboot應用將所有符合條件的@configuration配置都載入到當前springboot建立並使用的ioc容器。借助於spring框架原有的乙個工具類:springfactoriesloader的支援,@enableautoconfiguration可以智慧型的自動配置功效才得以大功告成

@componentscan的功能其實就是自動掃瞄並載入符合條件的元件或bean定義,最終將這些bean定義載入到容器中。我們可以通過basepackages等屬性指定@componentscan自動掃瞄的範圍,如果不指定,則預設spring框架實現從宣告@componentscan所在類的package進行掃瞄,預設情況下是不指定的,所以springboot的啟動類最好放在root package下。

控制器,處理http請求。

檢視@restcontroller原始碼

@target(elementtype.type)

@retention(retentionpolicy.runtime)

@documented

@controller

@responsebody

public @inte***ce restcontroller

從原始碼我們知道,@restcontroller註解相當於@responsebody+@controller合在一起的作用,restcontroller使用的效果是將方法返回的物件直接在瀏覽器上展示成json格式.

通過httpmessageconverter讀取request body並反序列化為object(泛指)物件

@target(elementtype.method)

@retention(retentionpolicy.runtime)

@documented

//...

}

@target(elementtype.method)

@retention(retentionpolicy.runtime)

@documented

//...

}

@controller

public class helloworldcontroller

}

請求示例:http://localhost:8080/user/getuser/123

public string getuser(@requestparam("uid")integer id, model model)

請求示例:http://localhost:8080/user/getuser?uid=123

dao層註解,dao層中介面繼承jparepository,需要在build.gradle中引入相關jpa的乙個jar自動載入。

repository註解原始碼

@target()

@retention(retentionpolicy.runtime)

@documented

@component

public @inte***ce repository

@target()

@retention(retentionpolicy.runtime)

@documented

@component

public @inte***ce service

@scope作用在類上和方法上,用來配置 spring bean 的作用域,它標識 bean 的作用域

@scope原始碼

@target()

@retention(retentionpolicy.runtime)

@documented

public @inte***ce scope .

* @see #scopename

*/@aliasfor("scopename")

string value() default "";

@aliasfor("value")

string scopename() default "";

scopedproxymode proxymode() default scopedproxymode.default;

}

屬性介紹

value

singleton 表示該bean是單例的。(預設)

prototype 表示該bean是多例的,即每次使用該bean時都會新建乙個物件。

request 在一次http請求中,乙個bean對應乙個例項。

session 在乙個httpsession中,乙個bean對應乙個例項。

proxymode

default 不使用**。(預設)

no 不使用**,等價於default。

inte***ces 使用基於介面的**(jdk dynamic proxy)。

target_class 使用基於類的**(cglib)。

@table(name ="資料庫表名"),這個註解也注釋在實體類上,對應資料庫中相應的表。

@id、@column註解用於標註實體類中的字段,pk欄位標註為@id,其餘@column。

@bean明確地指示了一種方法,產生乙個bean的方法,並且交給spring容器管理。支援別名@bean("xx-name")

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

雖然有了@autowired,但是我們還是要寫一堆bean的配置檔案,相當麻煩,而@component就是告訴spring,我是pojo類,把我註冊到容器中吧,spring會自動提取相關資訊。那麼我們就不用寫麻煩的xml配置檔案了

引入單個properties檔案:

@propertysource(value = )

引入多個properties檔案:

@propertysource(value = )

可以額外分為兩種模式 相對路徑classpath,絕對路徑(真實路徑)file

注意:單檔案可以不寫value或locations,value和locations都可用

相對路徑(classpath)

絕對路徑(file)

取值:使用@value註解取配置檔案中的值

@value("$")

private string ***;

功能類似xml配置的,用來匯入配置類,可以匯入帶有@configuration註解的配置類或實現了importselector/importbeandefinitionregistrar。

使用示例

@import()

public static void main(string args)

}在spring中,事務有兩種實現方式,分別是程式設計式事務管理和宣告式事務管理兩種方式

@controlleradvice 註解定義全域性異常處理類

@controlleradvice

public class globalexceptionhandler

@controlleradvice

public class globalexceptionhandler

}

Springboot常用註解

1.requestbody可以將請求體中的json字串繫結到相應的bean上 1 之前 ajax success function data public void login requestbody string username,requestbody string pwd 2 使用reques...

springboot常用註解

申明讓spring boot自動給程式進行必要的配置,這個配置等同於 configuration enableautoconfiguration 和 componentscan 三個配置。configuration 相當於傳統的xml配置檔案,如果有些第三方庫需要用到xml檔案,建議仍然通過 con...

springboot常用註解

controller層 controller 用來響應頁面,表示當前的類為控制器。restcontroller 是 responsebody和 controller的結合表明當前類是控制器且返回的是一組資料,不是頁面。autowired 這個註解的作用是將其他的類,介面引入,類似於之前的類的初始化等...