Springboot中常見註解的使用
通過近期的專案,在專案中遇到過的很多問題都是因為對註解的使用不熟導致開發效率不高,所以我花了一些時間,對Springboot中最常見的註解進行整理和歸納,希望可以幫助到大家。
(1) 在Springboot中最重要的是@RestController和@RequestMapping註解
@RestController註解,它繼承自@Controller註解。 當實現一個RESTful web services的時候,response將一直通過response body傳送。為了簡化開發,Spring 4.0提供了一個專門版本的controller。下面是@RestController
@RequestMapping 註解提供路由資訊。
它是一個用來處理請求地址對映的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。該註解有六個屬性:
params:指定request中必須包含某些引數值是,才讓該方法處理。
headers:指定request中必須包含某些指定的header值,才能讓該方法處理請求。
value:指定請求的實際地址,指定的地址可以是URI Template
模式
method:指定請求的method型別, GET、POST、PUT、DELETE等
consumes:指定處理請求的提交內容型別(Content-Type
produces:指定返回的內容型別,僅當request請求頭中的(Accept)型別中包含該指定型別才返回
(2)@ResponseBody
@Responsebody表示該方法的返回結果直接寫入HTTP response body中
一般在非同步獲取資料時使用,在使用@RequestMapping後,返回值通常解析為跳轉路徑,
加上@Responsebody後返回結果不會被解析為跳轉路徑,而是直接寫入HTTP response body中。
比如非同步獲取json資料,加上@Responsebody後,會直接返回json資料。
(3)@RequestBody將HTTP請求正文插入方法中,使用適合的HttpMessageConverter將請求體寫入某個物件。
(4)@Autowired註解,一般結合@ComponentScan註解,來自動注入一個Service或Dao級別的Bean
(5)@Service
一般用於修飾service層的元件
(6)@Data,用於實體類中get和set的方法的建立,用了它,就不用實現get和set方法了;
(7)@Component:泛指元件,當元件不好歸類的時候,我們可以使用這個註解進行標註。
(8)@RequestParam:用在方法的引數前面。
(9)@Transactional:
在Spring容器中,我們手工註解@Bean 將被優先載入,框架不會重新例項化其他的 PlatformTransactionManager 實現類。
然後在Service中,被 @Transactional 註解的方法,將支援事務。如果註解在類上,則整個類的所有方法都預設支援事務。
對於同一個工程中存在多個事務管理器要怎麼處理,如下圖,就可以解決;
(10)參考的網站:
http://blog.csdn.net/catoop/article/details/50595702
http://www.cnblogs.com/m4tech/p/6610301.html
(11)總結:關於Springboot中的註解還有很多,這些是我在專案中遇到多處用到的地方,自我覺得很重要,很好的運用註解,可以很快提升編碼的速度,好的編碼習慣很重要,我在專案中就是因為不細心,測試的時候會有很多Bug,細心對於我們來說很重要,認真對待每一件事,相信我們都會很快成長的,加油!