Spring-boot框架常用註解

springboot的核心就是註解。springboot通過各種組合註解,極大地簡化了spring項目的搭建和開發。採用純java代碼,不在需要配置繁雜的xml文件。類型安全對重構可以提供良好的支持。

@SpringBootApplication

@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration註解。

其中:

@ComponentScan:讓spring Boot掃描到Configuration類並把它加入到程序上下文。
@Configuration :等同於spring的XML配置文件;使用Java代碼可以檢查類型安全。
@EnableAutoConfiguration :自動配置。

@RequestBody與@ResponseBody

//注意並不要求@RequestBody與@ResponseBody成對使用。

@RequestBody修飾請求參數,註解用於接收HTTP的body,默認是使用JSON的格式

@ResponseBody修飾返回值,註解用於在HTTP的body中攜帶響應數據,默認是使用JSON的格式。如果不加該註解,spring響應字符串類型,是跳轉到模板頁面或jsp頁面的開發模式。說白了:加上這個註解你開發的是一個數據接口,不加這個註解你開發的是一個頁面跳轉控制器。

@ResponseBody可以用於寫數據加載的接口時候用,但是注意不要混淆了,一個是請求頭一個時響應頭。兩者默認是傳輸以及接受自動轉JSON格式,前端可以直接調用

@RequestMapping註解

@RequestMapping註解是所有常用註解中,最有看點的一個註解,用於標註HTTP服務端點。它的很多屬性對於豐富我們的應用開發方式方法,都有很重要的作用。

  • value: 應用請求端點,最核心的屬性,用於標誌請求處理方法的唯一性;
  • method: HTTP協議的method類型, 如:GET、POST、PUT、DELETE等;
  • consumes: HTTP協議請求內容的數據類型(Content-Type),例如application/json, text/html;
  • produces: HTTP協議響應內容的數據類型。下文會詳細講解。
  • params: HTTP請求中必須包含某些參數值的時候,才允許被註解標註的方法處理請求。
  • headers: HTTP請求中必須包含某些指定的header值,才允許被註解標註的方法處理請求。

    @RequestMapping(value = "/路徑", method = POST)
    @PostMapping(value = "/article")

如果沒有寫method,應該是默認接受所有類型的。也就是PostMapping等同於@RequestMapping的method等於POST。同理:@GetMapping、@PutMapping、@DeleteMapping也都是簡寫的方式。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Tkt4F2Tl-1576241567873)(1.jpg)]

我比較習慣直接用,這樣默認接受get或者post。

@RestController與@Controller

@Controller註解是開發中最常使用的註解,它的作用有兩層含義:

一是告訴Spring,被該註解標註的類是一個Spring的Bean,需要被注入到Spring的上下文環境中。
二是該類裏面所有被RequestMapping標註的註解都是HTTP服務端點。

@RestController相當於 @Controller和@ResponseBody結合。它有兩層含義:

一是作爲Controller的作用,將控制器類注入到Spring上下文環境,該類RequestMapping標註方法爲HTTP服務端點。
二是作爲ResponseBody的作用,請求響應默認使用的序列化方式是JSON,而不是跳轉到jsp或模板頁面。

總結來說就是,如果用的是Controller,接收到請求後返回的是一個跳轉地址

比如說:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-2B9cxlg2-1576241567874)(2.jpg)]

jump就是一個跳轉地址,進入index接口後返回的是一個login.html頁面地址

如果是RestController

就是爲,接受到請求後,ResponseBody作用返回一個JSon數據

比如說:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-M2dAU723-1576241567875)(3.jpg)]

進入/test,index接口後,會獲取數據,結果返回的是一個Json字符串

@Autowired

我們編寫spring 框架的代碼時候。一直遵循是這樣一個規則:所有在spring中注入的bean 都建議定義成私有的域變量。並且要配套寫上 get 和 set方法。
Spring 2.5 引入了 @Autowired 註釋,它可以對類成員變量、方法及構造函數進行標註,完成自動裝配的工作。 通過 @Autowired的使用來消除 set ,get方法。Spring 通過一個 BeanPostProcessor 對 @Autowired 進行解析,所以要讓 @Autowired 起作用必須事先在 Spring 容器中聲明 AutowiredAnnotationBeanPostProcessor Bean。

具體使用詳情:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-aQTy3J1a-1576241567877)(4.jpg)]

@Autowired 將查找被標註的方法的入參類型的 Bean,並調用方法自動注入這些 Bean。

感謝

看雲的一本書,不過好像被ban了
Springboot付費書籍

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