天天看點

Spring Boot 常用注解、Profiles、優雅停服說明

在項目的開發中,有些配置檔案在不同的環境(開發、測試、生成)中配置資訊是不同的,例如資料庫連接配接資訊、Redis配置資訊、日志控制級别等等都是不同的,那麼就需要我們再項目中根據不同的環境配置不同的配置資訊,做到不同的環境配置不同的配置,做到各個環境配置隔離。

在 Spring Boot 中多環境配置檔案名需要使用 【application-{profile}.properties】或

【application-{profile}.yml】的格式,這裡 {profile} 對應的是不同的環境辨別。

application-test.properties 或 application-test.yml

application-prod.properties 或 application-prod.yml

需求:

​ 測試環境服務端口:8081,生産環境端口:8082,如何進行實作

建立對應環境的配置檔案

application-test.yml 和 application-prod.yml

application-test.yml配置檔案内容:

application-prod.yml配置檔案内容:

application.yml激活對應環境配置

測試

不同的環境啟動腳本中激活不同的配置即可。

注解

說明

@SpringBootApplication

組合注解:等價于@Configuration、@EnableAutoConfiguration、@ComponentScan

@EnableAutoConfiguration

啟用自動配置功能

@ComponentScan

元件掃描,可自動發現和裝配一些Bean

@Import

導入其他配置類

@Bean

相當于Spring中xml中的bean标簽

@Configuration

标記該類為配置類,等價于Spring中xml配置檔案

@ConditionalOnMissingBean

未在類路徑下中找到對應Bean執行

@ConditionalOnBean

在類路徑下中找到對應Bean執行

@ConditionalOnProperty

在全局配置檔案中找到對應屬性執行

@ConditionalOnMissingClass

未在類路徑下中找到對應的Class執行

@ConditionalOnClass

在類路徑下中找到對應的Class執行

@RestController

組合注解,等價于@Controller、@ResponseBody

@Autowired

Spring 依賴注入Bean,基于類型byType

@Qualifier

當容器中有多個同類型的Bean,通過該注解來指定,與@Autowired結合使用

@Service

業務類

@Component

元件類

@Repository

資料通路層

當線上某個應用需要更新部署時,常常簡單粗暴地使用 kill 指令,這種停止應用的方式會讓應用将所有進行中的請求丢棄,響應失敗。這樣的響應失敗尤其是在處理重要業務邏輯時需要極力避免的,那麼久需要平滑的關閉。

Spring Boot 架構提供健康監控依賴啟動器,可以對Spring Boot服務進行監控,優雅停服等功能

執行 kill -9 / 或者 Ctrl+C操作,或者請求接口

傳回資料

說明優雅關閉成功

繼續閱讀