你以爲你真的都懂這些SpringBoot註解嗎

Spring Boot方式的項目開發已經逐步成爲Java應用開發領域的主流框架,它不僅可以方便地創建生產級的Spring應用程序,還能輕鬆地通過一些註解配置與目前比較火熱的微服務框架SpringCloud集成。

而Spring Boot之所以能夠輕鬆地實現應用的創建及與其他框架快速集成,最核心的原因就在於它極大地簡化了項目的配置,最大化地實現了“約定大於配置”的原則。然而基於Spring Boot雖然極大地方便了開發,但是也很容易讓人“雲裏霧裏”,特別是各種註解很容易讓人“知其然而不知其所以然

1,採用純java代碼,不在需要配置繁雜的xml文件
2,在配置中也可享受面向對象帶來的好處
3,類型安全對重構可以提供良好的支持
4,減少複雜配置文件的同時亦能享受到springIoc容器提供的功能。

  • @SpringBootApplication

:申明讓spring boot自動給程序進行必要的配置,這個配置等同於:
@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三個配置。

  • @Configuration
    相當於傳統的xml配置文件,如果有第三方需要用到xml文件,建議任然通過@Configuration類作爲項目的配置主類–可以使用@ImportResource註解加載xml配置文件。
  • ComponentScan
    表示該類自動發現掃描組件。個人理解相應於,如果掃描到有@Component,@Controller,@Service等這些註解的類,並註冊Bean,可以自動收集所有的Srping組件,包括@Configuration類。我們經常使用@ComponentScan註解搜索beans,並結合@Autowired註解導入。
    如果沒有配置的話,Spring Boot會掃描啓動類所在包下以及子包下的使用了@Service,@Repository等註解的類。
  • EnableAutoConfiguration
    springboot自動配置(auto-configuration):嘗試根據你添加的jar依賴自動配置你的spring運用。嘗試根據你添加的jar依賴自動配置你的Spring應用。例如,如果你的classpath下存在HSQLDB,並且你沒有手動配置任何數據庫連接beans,那麼我們將自動配置一個內存型(in-memory)數據庫”。你可以將@EnableAutoConfiguration或者@SpringBootApplication註解添加到一個@Configuration類上來選擇自動配置。如果發現應用了你不想要的特定自動配置類,你可以使用@EnableAutoConfiguration註解的排除屬性來禁用它們。
  • @ResponseBody
    表示該方法的返回結果直接寫入Http response body中,一般在異步獲取數據時使用,用於構建RestFul的api。在使用@RequestMapping後,返回值通常解析爲跳轉路徑,加上@ResponseBody後返回結果不會被解析爲跳轉路徑,而是直接直接寫入Http response body中。比如異步獲取json數據,加上@Responsebody後,會直接返回json數據。該註解一般會配合@RequestMapping一起使用。
  • @Controller
    用於定義控制器類。在spring項目中由控制器負責將用戶發來的URL請求轉發到對應的服務接口(service層),一般這個註解在類中,通常方法需要配合註解@RequestMapping。
  • @RequestMapping
    提供路由信息,複製url到Controller中的具體函數的映射
  • @RestController
    @Controller和@ResponseBody的合集
  • @Autowired
    自動導入依賴的bean
  • @Service
    一般修飾service層的組件
  • @Repository
    使用@repository註解可以確保DAO或者repositories提供異常轉譯,這個註解修飾的DAO或者repositories類會被ComponetScan發現並配置,同時也不需要爲他們提供XML配置項。
  • @Bean
    用@Bean標註方法等價於XML中配置的bean。
  • @Component
    泛指組件,當組件不好歸類的時候,我們可以使用這個註解進行標註。
  • @Qualifier

當有多個同一個類型的Bean時,可以用@Qualifer(“name”)來指定。與@Autowired配合使用

SpringMvc相關注解

  • @RequestMapping
    @RequestMapping(“/path”)表示該控制器處理所有“/path”的UR L請求。RequestMapping是一個用來處理請求地址映射的註解,可用於類或方法上。
    用於類上,表示類中的所有響應請求的方法都是以該地址作爲父路徑。該註解有六個屬性:
    params:指定request中必須包含某些參數值是,才讓該方法處理。
    headers:指定request中必須包含某些指定的header值,才能讓該方法處理請求。
    value:指定請求的實際地址,指定的地址可以是URI Template 模式
    method:指定請求的method類型, GET、POST、PUT、DELETE等
    consumes:指定處理請求的提交內容類型(Content-Type),如application/json,text/html;
    produces:指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回
  • @RequestParam
    用在方法前面的參數
  • @PathVariable
    路徑變量

全局異常處理

  • @ControllerAdvice
    包含@Component,可以被掃描到。統一處理異常
  • @WxceptionHandler(Exception.class)
    用在方法上面表示遇到這個異常就執行以下方法

引用:https://blog.csdn.net/weixin_40753536/article/details/81285046

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