文章目錄
spring boot 四種屬性注入
- @Autowired注入
- 構造方法注入
- @Bean和形參注入
- 使用@bean和@ConfigurationProperties(prefx = “…”)注入
spring boot 中常用註解
- @EnableAutoConfiguration
- @RestController
- CompenScan
- SpringBootApplication
- SpringBootConfiguraion
- @Configuration
- @PropertySource
- @Bean
- @Value
- ConfigurationProperties
- EnableConfigurationProperties
spring boot 自動配置
@EnableAutoConfiguration開啓spring boot自動配置,在Denpendcy中引入spring-boot-autoconfigure,這個依賴項中定義了許多的依賴、例如aop、cache、jdbc……
@RequestBody 和 @ResponseBody
@RequestBody
作用
@RequestBody(1)作用於讀取Request請求的body部分數據,使用系統默認的HttpMessageConverter進行解析,然後把數據綁定到要返回的對象上;(2)把HttpMessageConverter返回的對象數據綁定到Controller方法的參數上
使用時機
-
使用GET、POST請求,根據request header content-type判斷
- application/x-www-form-urlencoded,可選(非必須項,這種格式的數據,使用 @ReauestBody,@RequestParm,@ModelAttribute都能處理)
- mutilpart/form-data,這種格式數據 @RequestBody不能處理
- 其他格式,必須(包括application/json、application/xml格式數據,必須使用 @RequestBody來處理)
-
使用PIUT請求,根據request header content-type判斷
- application/x-www-form-urlencoded,必須(這種格式數據必須使用 @RequestBody 處理)
- mutilpart/form-data,不能(這種格式數據不能用 @RequestBody 處理)
- 其他格式(application/json、application/xml,這種格式數據必須使用 @RequestBody 處理)
注意:request的body部分數據編碼格式由conten-type指定
@ResponsseBody
作用
此註解作用於Controller方法的返回對象,通過HtppMessageConverter轉換爲指定格式後,寫入Response的body中
使用時機
返回對象爲json、xml這種格式的數據時使用
問題記錄
- Spring Boot Application in default package
描述:建立如下測試程序,使用 @SpringBootApplication註解,報錯:Spring Boot Application in default package
產生原因:main方法直接放在了java包下
解決方案:
官方解決方案:
@springbootApplication 註解失效的情況下,推薦使用@CompentScan 和@EnableAutoConfiguration進行代替;
在java包下建立一個新的package,然後將測試程序移動到該package下,如下圖:
- 啓動spring boot項目失敗
描述:如下圖
原因:端口被佔用
解決方案:在application.properties中配置端口,或者將佔用當前端口的程序shutdown
- 沒有配置Tomcat服務器,導啓動失敗
配置步驟如下:
1 編輯配置:Edit Configuration
2 選擇 Template,選擇Tomcat Server ——> Local
spring boot項目啓動成功後日志如下:
在瀏覽器輸入測試用的url,結果如下:
持續更新…