SpringBoot相關(guān)資料整合

1.Spring Boot 是什么

是一個基于Spring的開源的輕量級框架,目的是為了簡化Spring應(yīng)用的初始搭建和開發(fā)的過程,相當(dāng)于是對Spring的一個擴展。

Spring Boot具備的特征:

? ? 1.可以創(chuàng)建獨立的Spring應(yīng)用,并且基于其Maven或Gradle插件構(gòu)建,創(chuàng)建可執(zhí)行的JARS和WARS。

2.內(nèi)置Tomcat,Jettey等Servlet容器。

3.提供自動配置的“starter”項目對象模型(POMS)以簡化Maven配置。

Spring Boot的兩個重要策略:

1.開箱即用(Outofbox):是指在開發(fā)過程中,通過配置MAVEN的pom.xml添加相關(guān)的依賴,

以便使用注解的方式代替XML管理對象的生命周期。

2.約定大于配置(Convention over configuration): 個人理解是SpringBoot幫我們做了很多默認的配置,

我們盡量使用默認的配置開發(fā),在沒有默認的情況下,自己配置,可以減少我們做決定的數(shù)量。

2.常用注解:

@SpringBootApplication :Spring Boot的自動配置,用來開啟Spring Boot的各項功能

等價于:

@Configuration: 用于定義配置類,可以代替XML配置文件,內(nèi)部一般包含帶有@Bean注解的方法。

@EnableAutoConfiguration: 開啟自動配置,注解后可以自動開啟當(dāng)前類路徑包下的配置(@Configuration)來初始化Bean。

@ComponentScan:自動裝配,標識了@Controller,@Service,@Repository,@Component注解的類到Spring容器中。

2-1.Bean相關(guān):

@Autowired:注入依賴對象,自動裝配Bean。只能用于被以下注解標識的類中:

@Controller:對應(yīng)SpringMVC控制器層,用于接收請求并調(diào)用Service層數(shù)據(jù)返回前端。

@Service:對應(yīng)業(yè)務(wù)層,業(yè)務(wù)邏輯通常在這里實現(xiàn),通過調(diào)用Dao層來和DB交互。

@Repository:對應(yīng)持久層(DAO),主要處理和數(shù)據(jù)庫相關(guān)的操作。

@Component:通用注解,標注任意類為Spring組件。不知道具體屬于哪個層可以用這個標注,(可以代替@Configuration注解)。

@RestController:是@Controller和@ResponseBody的合集,表示這是控制器,同時方法的返回值都將是JSON或XML格式的。

@Scope: 聲明Spring Bean的作用域,有以下幾種參數(shù):

????singleton:單例,唯一實例。Spring中的Bean默認都是單例的。

????prototype:每次請求會創(chuàng)建一個新的Bean實例。

????request:每次Http請求都會產(chǎn)生一個新的Bean,只在當(dāng)前Http request中有效。

????session:每次Http請求都會產(chǎn)生一個新的Bean,只在當(dāng)前Http session中有效。

2-2.REST API相關(guān):

@GetMapping:接收GET請求,(從服務(wù)器獲取資源),等價于@RequestMapping(,method=RequestMethod.GET)。

@PostMapping:接收POST請求,(創(chuàng)建新的資源),等價于@RequestMapping(,method=RequestMethod.POST)。

@PutMapping:接收PUT請求,(更新服務(wù)器上的資源,提供整個),等價于@RequestMapping(,method=RequestMethod.PUT)。

@DeleteMapping:接收DELETE請求,(刪除服務(wù)器上的資源),等價于@RequestMapping(,method=RequestMethod.DELETE)。

@PatchMapping:接收PATCH請求,(更新服務(wù)器上的資源,提供部分),等價于@RequestMapping(,method=RequestMethod.PATCH)。

2-3.前后端傳值

@PathVariable:用于獲取Url里的參數(shù),例子:"/hello/{ID}/"里的{ID}。

@RequestParam:寫在方法的參數(shù)前面來取值??梢灾付╪ame。

@RequestBody:寫在方法的參數(shù)前面來取值,接收Content-Type為application/json的數(shù)據(jù),

Spring會使用HttpMessageConverter將json轉(zhuǎn)化成Java對象。

2-4.讀取配置文件

@Value("${xxx}"):讀取application.yml 配置文件中的屬性。

@ConfigurationProperties("prefix="xxx"):可以將配置文件注冊成Bean(Get,Set)。

@PropertySoure("xxx.properties"):讀取指定配置文件。

2-5.參數(shù)校驗

@NotEmpty 不能為 null 也不能為空

@NotBlank 不能為 null,并且必須包含一個非空白字符

@Null 被注釋的元素必須為 null

@NotNull 被注釋的元素必須不為 null

@AssertTrue 被注釋的元素必須為 true

@AssertFalse 被注釋的元素必須為 false

@Pattern(regex=,flag=)被注釋的元素必須符合指定的正則表達式

@Email 被注釋的元素必須是 Email 格式。

@Min(value)被注釋的元素必須是一個數(shù)字,必須大于等于指定的最小值

@Max(value)被注釋的元素必須是一個數(shù)字,必須小于等于指定的最大值

@DecimalMin(value)被注釋的元素必須是一個數(shù)字,其值必須大于等于指定的最小值

@DecimalMax(value) 被注釋的元素必須是一個數(shù)字,其值必須小于等于指定的最大值

@Size(max=, min=)被注釋的元素的大小必須在指定的范圍內(nèi)

@Digits (integer, fraction)被注釋的元素必須是一個數(shù)字,其值必須在可接受的范圍內(nèi)

@Past被注釋的元素必須是一個過去的日期

@Future 被注釋的元素必須是一個將來的日期

--

@Valid:在傳入?yún)?shù)的前面使用該注解讓以上注解生效。驗證失敗會拋出異常,MethodArgumentNotValidException,驗證@PathVariable時,在類上添加注解@Validated。

2-6.全局異常處理:

@ControllerAdvice:定義全局異常處理類。

@ExceptionHandler:要捕獲的異常,及處理方法,和@ControllerAdvice配合使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容