SpringBoot註解
- 2021 年 4 月 23 日
- 筆記
- springboot
Spring Boot介紹:
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
SpringBoot所具備的特徵:
-
可以創建獨立的Spring應用程序,並且基於其Maven或者Gradle插件,可以創建可執行的JARs和WARs;
-
內嵌Tomcat或Jetty等Servlet容器;
-
提供自動配置的「starter」項目對象模型(POMS)以簡化Maven配置;
-
儘可能自動配置Spring容器;
-
提供準備好的特性,如指標、健康檢查和外部化配置;
-
絕對沒有代碼生成,不需要XML配置;
SpringBoot啟動類中
用@StringBootApplication註解標明此類為啟動類
@StringBootApplication註解是SpringBoot項目的核心註解,目的是開啟自動配置
在這個配置中包含了以下三種註解:
@StringBootConfiguration(此註解意思為:標明此類為配置類)
@EnableAutoSpringBootConfiguration(此註解意思為:自動配置)
@ComponentScan(此註解意思為:掃描包實例化)
Thymeleaf模板:
Thymeleaf代替了我們之前web開發的JSP它也可以輕易的與Springmvc等web框架進行集成
Thymeleaf特點:
能直接在瀏覽器中打開並正確,顯示模板頁面,不需要重啟整個web應用
由於Thymeleaf使用了XMLDOM解析器,因此它並不適合用於處理大規模的XML文件
共享Session
1、引入redis依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
2、添加註解
@EnbaleRedisHttpSession(maxIncativeIntervaLInsecands=46561*50)
maxIncativeIntervaLInsecands:設置Session失效時間
SpringBootJpa:
Java持久化規範、它的出現主要是為了簡化,現有的持久化開發工作和整合ORM技術
SpringBoot是Spring基於ORM框架,JPA規範的基礎上封裝的一套JPA應用框架,可以大大提高開發效率
SpringBootJpa默認預先生成了一些基本的CURD方法:例如增刪改查等
SpringBoot中應當注意的註解及其作用:
@PathVariable是spring3.0中的一個新功能;能接受請求路徑中佔位符的值,獲取url中的數據
@RestControllerAdvice註解和@ControllerAdvice的註解區別:
註解有@ControllerAdvice的類,需要在具體方法上同時添加@ExceptionHandler和@ResponseBody註解;
註解有@RestControllerAdvice的類,只需要在具體方法上添加@ExceptionHandler註解;
@ExceptionHandler註解用來捕獲並統一處理,減少代碼重複率和複雜度
@Resource和@Autowired註解都是用來實現依賴注入的
區別:
@Autowired註解是按by type自動注入;
@Resource註解默認按byName自動注入
@Resource註解有兩個重要屬性,分別是name和type
@RequestBody和@RequestParam的區別:
@RequestBody可以將body裏面所有的json數據傳入後端,後端進行解析;
@RequestBody一般用戶處理application/json、application/xml等類型的數據;
@RequestBody不適用於GET請求,原因:GET請求中沒有HttpEntity
@RequestParam註解接受的參數是來自Http請求或url請求
@RequestParam註解可以接受簡單類型屬性,也可以接收對象類型
@RequestParam註解通常用來處理Content-Type為application/x-www-form-urlencoded編碼的內容(這裡指form表單數據)
@RequestParam註解無法讀取json格式數據
Contnet-Type總結:
form表單請求數據類型(application/x-www-form-urlencoded),不可以用@RequestBody註解;可以使用@RequestParam註解
application/json:json字符串用@RequestBody註解
@Compent註解把普通pojo實體類實例化到Spring容器中
@MapperScan註解:遞歸掃描,比如掃描com.zy下的mapper包,例如:MapperScan(”com.zy.Mapper”)
@Entity:表明該類是一個實體類
@Table:當實體類與映射數據庫表名不同時,需要使用比如:@Table(name=”user_home”,shema=”test”)
@SpringBootTest:表名這個類是測試類
@Runwith:運行測試類,相當於運行器
@EnableCaching註解:是Springframework中註解驅動的緩存管理功能
@Controller和@RestController區別:
在對應的方法上,視圖解析器可以解析return的JSP、HTML頁面並且跳轉到相對應的頁面使用@Controller註解
若返回json字符串內容到頁面,則需要加@RestController註解

