Spring Boot 核心註解,常用註解,註解大全,超細詳解(典藏版)

Spring Boot 主要優勢之一,就是“開箱即用,遠離繁瑣的配置”。

Spring Boot 架構沒有代碼生成,也不需要XML配置,有效避免大量的 Maven 導入和各種版本衝突,爲 Spring 開發提供一個更快、更廣泛的入門體驗。

不得不說,掌握 Spring Boot 常用註解,是學習Spring Boot 架構的關鍵。

一、核心註解

@SpringBootApplication

通常用在啓動類上,申明讓spring boot自動給程序進行必要的配置,它也是 Spring Boot 的核心註解,主要組合包含了以下 3 個註解:

1. @SpringBootConfiguration

組合了 @Configuration 註解,實現配置文件的功能。

2. @EnableAutoConfiguration

打開自動配置的功能,也可以關閉某個自動配置的選項。

如關閉數據源自動配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class });

3. @ComponentScan

Spring組件掃描功能,讓spring Boot掃描到Configuration類並把它加入到程序上下文。

二、常用註解

1. 配置導入功能

1.1 @Configuration

等同於spring的XML配置文件,使用Java代碼可以檢查類型安全。指出該類是 Bean 配置的信息源,相當於XML中的<beans></beans>,一般加在主類上。

1.2 @Bean

相當於XML中的<bean></bean>,放在方法的上面,而不是類,意思是產生一個bean,並交給spring管理;

1.3 @Import

用來導入其他配置類;

1.4 @ImportResource

用來加載xml配置文件;

1.5 @Autowired

自動導入依賴的bean,自動導入依賴的bean。byType方式。把配置好的Bean拿來用,完成屬性、方法的組裝,它可以對類成員變量、方法及構造函數進行標註,完成自動裝配的工作。當加上(required=false)時,就算找不到bean也不報錯;

1.6 @Resource(name="name",type="type")

沒有括號內內容的話,默認byName,與@Autowired幹類似的事;

1.7 @Inject

等價於默認的@Autowired,只是沒有required屬性;

2. 業務層功能

2.1 @Component

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

2.2 @Controller

用於定義控制器類,在spring項目中由控制器負責將用戶發來的URL請求轉發到對應的服務接口(service層),一般這個註解在類中,通常方法需要配合註解@RequestMapping

2.3 @RestController

用於標註控制層組件(如struts中的action),是@ResponseBody和@Controller的合集;

2.4 @Service

一般用於修飾service層的組件;

2.5 @Repository

用於標註數據訪問組件,即DAO組件;

2.6 @RequestMapping

提供路由信息,負責URL到Controller中的具體函數的映射;

該註解包含以下6個屬性:(常用value)

  • params:指定request中必須包含某些參數值是,才讓該方法處理;
  • headers:指定request中必須包含某些指定的header值,才能讓該方法處理請求;
  • value:指定請求的實際地址,指定的地址可以是URI Template 模式;
  • method:指定請求的method類型, GET、POST、PUT、DELETE等;
  • consumes:指定處理請求的提交內容類型(Content-Type),如application/json,text/html;
  • produces:指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回。

2.7 @ResponseBody

表示該方法的返回結果直接寫入HTTP response body中,一般在異步獲取數據時使用,用於構建RESTful的api。在使用@RequestMapping後,返回值通常解析爲跳轉路徑,加上@esponsebody後返回結果不會被解析爲跳轉路徑,而是直接寫入HTTP response body中。比如異步獲取json數據,加上@Responsebody後,會直接返回json數據。該註解一般會配合@RequestMapping一起使用;

2.8 @Value

注入 application.properties 或 application.yml 配置的屬性的值;

2.9 @PathVariable

路徑變量,參數與大括號裏的名字一樣要相同;

2.10 @Profiles

Spring Profiles 提供了一種隔離應用程序配置的方式,並讓這些配置只能在特定的環境下生效。任何@Component或@Configuration都能被@Profile標記,從而限制加載它的時機;

2.11 @ConfigurationProperties

Spring Boot將嘗試校驗外部的配置,默認使用JSR-303(如果在classpath路徑中)。你可以輕鬆的爲你的@ConfigurationProperties 類添加JSR-303 javax.validation約束註解;

3. 全局異常處理

3.1 @ControllerAdvice

包含@Component,可以被掃描到,統一處理異常;

3.2 @ExceptionHandler(Exception.class)

用在方法上面,表示遇到這個異常就執行以下方法;

 

少俠請留步 ... ヾ(◍°∇°◍)ノ゙ ... 
歡迎點贊、評論、加關注,讓更多人看到學到賺到
更多精彩,請關注我的"今日頭條號":Java雲筆記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章