SpringBoot註解

Spring Boot介紹:

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。

 

SpringBoot所具備的特徵:

  1. 可以創建獨立的Spring應用程序,並且基於其Maven或者Gradle插件,可以創建可執行的JARs和WARs;
  2. 內嵌Tomcat或Jetty等Servlet容器;
  3. 提供自動配置的「starter」項目對象模型(POMS)以簡化Maven配置;
  4. 儘可能自動配置Spring容器;
  5. 提供準備好的特性,如指標、健康檢查和外部化配置;
  6. 絕對沒有代碼生成,不需要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註解