spring語法結構

顏小小發表於2020-10-31

1. SpringMVC呼叫流程

元件:
1.前端控制器 所有請求的中轉站
2.處理器對映器 將使用者的請求與執行的業務方法進行對映(繫結)
3.處理器介面卡
4.檢視解析器
在這裡插入圖片描述

2. @RestController

@RestController=@Controller+@ResponseBody
@ResponseBody 返回值為String型別則返回字串本身
返回的是一個物件則返回json串使用
若返回json等內容到頁面,則需要加@ResponseBody註解
程式將不會執行檢視解析器InternalResourceViewResolver 直接返回
@Controller 程式返回到指定頁面

3. @Value註解屬性賦值

有時物件中的屬性的值可能會發生變化,如果直接寫死到程式碼中可能導致耦合性高.
能否利用配置檔案方式動態的為屬性賦值.

@Value("${redis.host}")
    private String host;
    @Value("${redis.port}")
    private Integer port;

4. SpringBoot環境切換

業務實現-指定多個環境

# 該配置檔案,當spring容器啟動時載入.
spring:
  profiles:
    active: prod

---

# 定義開發環境
spring:
  profiles: dev

server:
  port: 8080

#配置redis節點資訊
redis:
  host: 192.168.1.100
  port: 6379

# 如果需要多環境配置則需要將YML環境分割
---
spring:
  profiles: prod

server:
  port: 8090

#配置redis節點資訊
redis:
  host: 10.0.0.1
  port: 6379

5. 熱部署配置

		<!--支援熱部署 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>

6. 註解

@Data //動態生成get/set/toString/equals等方法
@Accessors(chain = true) //開啟鏈式載入結構 重構了set方法可以連續.
@NoArgsConstructor //無參構造 必須新增
@AllArgsConstructor //全參構造

7. YML配置

server:
  port: 8090
  servlet:
    context-path: /
spring:
  datasource:
    #驅動版本問題 高版本需要新增cj關鍵字  一般可以省略
    #driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: root

mybatis:
  #別名包定義 Mapper的resultType中只需要寫類名 之後自動拼接即可
  type-aliases-package: com.jt.pojo
  #載入指定的xml對映檔案
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #開啟駝峰對映
  configuration:
    map-underscore-to-camel-case: true

8. 關於Sql連線說明

1.serverTimezone=GMT%2B8 %2B 代表 "+"號 表示時區
2.useUnicode=true&characterEncoding=utf8 指定編碼為utf-8
3.autoReconnect=true& 如果程式連線資料庫中途斷掉時是否重連.
4.allowMultiQueries=true 是否允許批量操作

相關文章