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