Spring Boot Actuator監控使用詳解
在企業級應用中,學習瞭如何進行SpringBoot應用的功能開發,以及如何寫單元測試、整合測試等還是不夠的。在實際的軟體開發中還需要:應用程式的監控和管理。SpringBoot的Actuator模組實現了應用的監控與管理。
Actuator簡介
生產系統中,往往需要對系統實際執行的情況(例如cpu、io、disk、db、業務功能等指標)進行監控運維。在SpringBoot專案中Actuator模組提供了眾多HTTP介面端點(Endpoint),來提供應用程式執行時的內部狀態資訊。
Actuator模組提供了一個監控和管理生產環境的模組,可以使用http、jmx、ssh、telnet等來管理和監控應用。包括應用的審計(Auditing)、健康(health)狀態資訊、資料採集(metrics gathering)統計等監控運維的功能。同時,提供了可以擴充套件 Actuator端點(Endpoint)自定義監控指標。這些指標都是以JSON介面資料的方式呈現。
Actuator的使用
使用Spring Boot Actuator需要加入如下依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
actuator並沒有預設整合在自動配置中,而在作為獨立的專案來呈現的。當引入了上面的依賴,預設會引入actuator相關的兩個專案:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator-autoconfigure</artifactId> </dependency>
其中spring-boot-actuator為功能實現,spring-boot-actuator-autoconfigure為自動配置。
需要注意:因SpringBoot Actuator會暴露服務的詳細資訊,為了保障安全性,建議新增安全控制的相關依賴spring-boot-starter-security,這樣在訪問應用監控端點時,都需要輸入驗證資訊。所需依賴如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
關於security的使用我們在此不進行展開,可在application檔案中配置相應的訪問密碼:
spring:
security:
user:
name: admin
password: admin
在下面的內容中為了方便,我們暫時不引入security。
經過以上步驟的操作,啟動SpringBoot專案,actuator便自動整合配置了,可通過:http://localhost:8080/actuator 訪問,結果如下:
{
"_links": {
"self": {
"href": "http://localhost:8080/actuator",
"templated": false
},
"health": {
"href": "http://localhost:8080/actuator/health",
"templated": false
},
"health-component": {
"href": "http://localhost:8080/actuator/health/{component}",
"templated": true
},
"health-component-instance": {
"href": "http://localhost:8080/actuator/health/{component}/{instance}",
"templated": true
},
"info": {
"href": "http://localhost:8080/actuator/info",
"templated": false
}
}
}
預設支援的連結有:
/actuator
/actuator/health
/health/{component}/{instance}
/health/{component}
/actuator/info
可以在application配置檔案中配置開啟更多的監控資訊:
management:
endpoints:
web:
exposure:
include: '*'
# base-path: /monitor
endpoint:
health:
show-details: always
shutdown:
enabled: true
- management.endpoints.web.exposure.include='*',代表開啟全部監控,也可僅配置需要開啟的監控,如: management.endpoints.web.exposure.include=beans,trace。
- management.endpoint.health.show-details=always,health endpoint開啟顯示全部細節。預設情況下/actuator/health是公開的,但不顯示細節。
- management.endpoints.web.base-path=/monitor,啟用指定的url地址訪問根路徑,預設路徑為/actuator/*,開啟則訪問路徑變為/monitor/*。
- management.endpoint.shutdown.enabled=true,啟用介面關閉SpringBoot。
監控資訊如果需要跨越呼叫,可通過CORS配置來支援,預設處於禁用狀態。設定management.endpoints.web.cors.allowed-origins屬性後開啟。
比如允許來自https://www.choupangxia.com 域的GET和POST呼叫:
management:
endpoints:
web:
cors:
allowed-origins: https://www.choupangxia.com
allowed-methods: GET,POST
REST介面
Spring Boot Actuator提供了非常豐富的監控介面,可以通過這些介面瞭解應用程式執行時的內部狀況。Actuator也支援使用者自定義新增端點,可以根據實際應用,定義一些比較關心的指標,在執行期進行監控。
HTTP方法 | 路徑 | 描述 |
---|---|---|
GET | /auditevents | 顯示當前應用程式的審計事件資訊 |
GET | /beans | 顯示一個應用中所有Spring Beans的完整列表 |
GET | /conditions | 顯示配置類和自動配置類(configuration and auto-configuration classes)的狀態及它們被應用或未被應用的原因。 |
GET | /configprops | 顯示一個所有@ConfigurationProperties的集合列表 |
GET | /env | 顯示來自Spring的ConfigurableEnvironment的屬性。 |
GET | /flyway | 顯示資料庫遷移路徑,如果有的話。 |
GET | /health | 顯示應用的健康資訊(當使用一個未認證連線訪問時顯示一個簡單的’status’,使用認證連線訪問則顯示全部資訊詳情) |
GET | /info | 顯示任意的應用資訊 |
GET | /liquibase | 展示任何Liquibase資料庫遷移路徑,如果有的話 |
GET | /metrics | 展示當前應用的metrics資訊 |
GET | /mappings | 顯示一個所有@RequestMapping路徑的集合列表 |
GET | /scheduledtasks | 顯示應用程式中的計劃任務 |
GET | /sessions | 允許從Spring會話支援的會話儲存中檢索和刪除(retrieval and deletion)使用者會話。使用Spring Session對反應性Web應用程式的支援時不可用。 |
POST | /shutdown | 允許應用以優雅的方式關閉(預設情況下不啟用) |
GET | /threaddump | 執行一個執行緒dump |
如果使用web應用(Spring MVC, Spring WebFlux, 或者 Jersey),還可以使用以下介面:
HTTP方法 | 路徑 | 描述 |
---|---|---|
GET | /heapdump | 返回一個GZip壓縮的hprof堆dump檔案 |
GET | /jolokia | 通過HTTP暴露JMX beans(當Jolokia在類路徑上時,WebFlux不可用) |
GET | /logfile | 返回日誌檔案內容(如果設定了logging.file或logging.path屬性的話),支援使用HTTP Range頭接收日誌檔案內容的部分資訊 |
GET | /prometheus | 以可以被Prometheus伺服器抓取的格式顯示metrics資訊 |
介面詳解
health主要用來檢查應用的執行狀態,這是使用頻次最高的監控點。通常使用此介面顯示應用例項的執行狀態,以及應用不“健康”的原因,比如資料庫連線、磁碟空間不夠等。
預設情況下health的狀態是開放的,訪問:http://localhost:8080/actuator/health 即可看到應用的狀態。
{
"status" : "UP"
}
設定狀態碼順序:setStatusOrder(Status.DOWN,Status.OUT_OF_SERVICE, Status.UP, Status.UNKNOWN)。
過濾掉不能識別的狀態碼。如果無任何狀態碼,整個SpringBoot應用的狀態是UNKNOWN。將所有收集到的狀態碼排序。返回有序狀態碼序列中的第一個狀態碼,作為整個SpringBoot應用的狀態。
Health通過合併幾個健康指數檢查應用的健康情況。SpringBoot Actuator會自動配置以下內容:
名稱 | 描述 |
---|---|
CassandraHealthIndicator | 檢查Cassandra資料庫是否已啟動。 |
CouchbaseHealthIndicator | 檢查Couchbase群集是否已啟動。 |
DiskSpaceHealthIndicator | 檢查磁碟空間不足。 |
DataSourceHealthIndicator | 檢查是否可以建立連線DataSource。 |
ElasticsearchHealthIndicator | 檢查Elasticsearch叢集是否已啟動。 |
InfluxDbHealthIndicator | 檢查InfluxDB伺服器是否已啟動。 |
JmsHealthIndicator | 檢查JMS代理是否啟動。 |
MailHealthIndicator | 檢查郵件伺服器是否已啟動。 |
MongoHealthIndicator | 檢查Mongo資料庫是否已啟動。 |
Neo4jHealthIndicator | 檢查Neo4j伺服器是否已啟動。 |
RabbitHealthIndicator | 檢查Rabbit伺服器是否已啟動。 |
RedisHealthIndicator | 檢查Redis伺服器是否啟動。 |
SolrHealthIndicator | 檢查Solr伺服器是否已啟動。 |
可以通過設定 management.health.defaults.enabled屬性來全部禁用。
原生端點
原生端點分為三大類:
- 應用配置類:獲取應用程式中載入的應用配置、環境變數、自動化配置報告等與Spring Boot應用密切相關的配置類資訊。
- 度量指標類:獲取應用程式執行過程中用於監控的度量指標,比如:記憶體資訊、執行緒池資訊、HTTP請求統計等。
- 操作控制類:提供了對應用的關閉等操作類功能。
應用配置類
/conditions:該端點用來獲取應用的自動化配置報告,其中包括所有自動化配置的候選項。同時還列出了每個候選項自動化配置的各個先決條件是否滿足。該端點可以幫助我們方便的找到一些自動化配置為什麼沒有生效的具體原因。
該報告內容將自動化配置內容分為兩部分:positiveMatches中返回的是條件匹配成功的自動化配置和negativeMatches中返回的是條件匹配不成功的自動化配置。
部分程式碼如下:
"contexts": {
"application": {
"positiveMatches": {
"MsgAutoConfiguration": [
{
"condition": "OnClassCondition",
"message": "@ConditionalOnClass found required class 'com.secbro2.msg.MsgService'"
}
],
"MsgAutoConfiguration#msgService": [
{
"condition": "OnPropertyCondition",
"message": "@ConditionalOnProperty (msg.enabled=true) matched"
},
{
"condition": "OnBeanCondition",
"message": "@ConditionalOnMissingBean (types: com.secbro2.msg.MsgService; SearchStrategy: all) did not find any beans"
}
],
/info:就是在配置檔案中配置的以info開頭的資訊,如配置為:
info:
app:
name: spring-boot-actuator
version: 1.0.0
返回結果:
{
"app":{
"name":"spring-boot-actuator",
"version":"1.0.0"
}
}
info中配置的引數也可以通過符號*@*包圍的屬性值來自pom.xml檔案中的元素節點。如下:
info:
build:
artifact: @project.artifactId@
name: @project.name@
description: @project.description@
ersion: @project.version@
返回結果:
{
"build": {
"artifact": "spring-learn",
"name": "spring-learn",
"description": "Demo project for Spring Boot",
"ersion": "0.0.1-SNAPSHOT"
}
}
/beans:該端點用來獲取應用上下文中建立的所有Bean。
{
"contexts": {
"application": {
"beans": {
"endpointCachingOperationInvokerAdvisor": {
"aliases": [],
"scope": "singleton",
"type": "org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor",
"resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]",
"dependencies": ["environment"]
},
"defaultServletHandlerMapping": {
"aliases": [],
"scope": "singleton",
"type": "org.springframework.web.servlet.HandlerMapping",
"resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]",
"dependencies": []
},
},
"parentId": null
}
}
}
介面展現了bean的別名、型別、是否單例、類的地址、依賴等資訊。
/configprops:該端點用來獲取應用中配置的屬性資訊報告。
{
"spring.transaction-org.springframework.boot.autoconfigure.transaction.TransactionProperties": {
"prefix": "spring.transaction",
"properties": {}
}
}
上面展示了TransactionProperties屬性的配置資訊。
/mappings:該端點用來返回所有SpringMVC的控制器對映關係報告。
{
"handler": "Actuator web endpoint 'beans'",
"predicate": "{GET /actuator/beans, produces [application/vnd.spring-boot.actuator.v2+json || application/json]}",
"details": {
"handlerMethod": {
"className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
"name": "handle",
"descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
},
"requestMappingConditions": {
"consumes": [],
"headers": [],
"methods": ["GET"],
"params": [],
"patterns": ["/actuator/beans"],
"produces": [{
"mediaType": "application/vnd.spring-boot.actuator.v2+json",
"negated": false
}, {
"mediaType": "application/json",
"negated": false
}]
}
}
}
/env:該端點與/configprops不同,它用來獲取應用所有可用的環境屬性報告。包括:環境變數、JVM屬性、應用的配置配置、命令列中的引數。
度量指標類
應用配置類提供的指標為靜態報告,而度量指標類端點提供的報告內容則是動態變化的,提供了應用程式在執行過程中的一些快照資訊,比如:記憶體使用情況、HTTP請求統計、外部資源指標等。這些端點對於構建微服務架構中的監控系統非常有幫助。
/metrics:該端點用來返回當前應用的各類重要度量指標,比如:記憶體資訊、執行緒資訊、垃圾回收資訊等。
{
"names": [
"jvm.memory.max",
"jvm.threads.states",
"http.server.requests",
"process.files.max",
"jvm.gc.memory.promoted",
"system.load.average.1m",
"jvm.memory.used",
"jvm.gc.max.data.size",
"jvm.gc.pause",
"jvm.memory.committed",
"system.cpu.count",
"logback.events",
"tomcat.global.sent",
"jvm.buffer.memory.used",
"tomcat.sessions.created",
"jvm.threads.daemon",
"system.cpu.usage",
"jvm.gc.memory.allocated",
"tomcat.global.request.max",
"tomcat.global.request",
"tomcat.sessions.expired",
"jvm.threads.live",
"jvm.threads.peak",
"tomcat.global.received",
"process.uptime",
"tomcat.sessions.rejected",
"process.cpu.usage",
"tomcat.threads.config.max",
"jvm.classes.loaded",
"jvm.classes.unloaded",
"tomcat.global.error",
"tomcat.sessions.active.current",
"tomcat.sessions.alive.max",
"jvm.gc.live.data.size",
"tomcat.threads.current",
"process.files.open",
"jvm.buffer.count",
"jvm.buffer.total.capacity",
"tomcat.sessions.active.max",
"tomcat.threads.busy",
"process.start.time"
]
}
從上面的示例中有這些重要的度量值:
- 系統資訊:包括處理器數量processors、執行時間uptime和instance.uptime、系統平均負載systemload.average。
- mem.*:記憶體概要資訊,包括分配給應用的總記憶體數量以及當前空閒的記憶體數量。這些資訊來自java.lang.Runtime。
- heap.*:堆記憶體使用情況。這些資訊來自java.lang.management.MemoryMXBean介面中getHeapMemoryUsage方法獲取的java.lang.management.MemoryUsage。
- nonheap.*:非堆記憶體使用情況。這些資訊來自java.lang.management.MemoryMXBean介面中getNonHeapMemoryUsage方法獲取的java.lang.management.MemoryUsage。
- threads.*:執行緒使用情況,包括執行緒數、守護執行緒數(daemon)、執行緒峰值(peak)等,這些資料均來自java.lang.management.ThreadMXBean。
- classes.*:應用載入和解除安裝的類統計。這些資料均來自java.lang.management.ClassLoadingMXBean。
- gc.*:垃圾收集器的詳細資訊,包括垃圾回收次數gc.ps_scavenge.count、垃圾回收消耗時間gc.ps_scavenge.time、標記-清除演算法的次數gc.ps_marksweep.count、標記-清除演算法的消耗時間gc.ps_marksweep.time。這些資料均來自java.lang.management.GarbageCollectorMXBean。
- httpsessions.*:Tomcat容器的會話使用情況。包括最大會話數httpsessions.max和活躍會話數httpsessions.active。該度量指標資訊僅在引入了嵌入式Tomcat作為應用容器的時候才會提供。
- gauge.*:HTTP請求的效能指標之一,它主要用來反映一個絕對數值。比如上面示例中的gauge.response.hello: 5,它表示上一次hello請求的延遲時間為5毫秒。
- counter.*:HTTP請求的效能指標之一,它主要作為計數器來使用,記錄了增加量和減少量。如上示例中counter.status.200.hello: 11,它代表了hello請求返回200狀態的次數為11。
/threaddump:會生成當前執行緒活動的快照。方便我們在日常定位問題的時候檢視執行緒的情況。主要展示了執行緒名、執行緒ID、執行緒的狀態、是否等待鎖資源等資訊。
{
"threads": [{
"threadName": "Reference Handler",
"threadId": 2,
"blockedTime": -1,
"blockedCount": 2,
"waitedTime": -1,
"waitedCount": 0,
"lockName": null,
"lockOwnerId": -1,
"lockOwnerName": null,
"daemon": true,
"inNative": false,
"suspended": false,
"threadState": "RUNNABLE",
"priority": 10,
"stackTrace": [{
"classLoaderName": null,
"moduleName": "java.base",
"moduleVersion": "11.0.4",
"methodName": "waitForReferencePendingList",
"fileName": "Reference.java",
"lineNumber": -2,
"className": "java.lang.ref.Reference",
"nativeMethod": true
}
...
"lockedMonitors": [],
"lockedSynchronizers": [{
"className": "java.util.concurrent.locks.ReentrantLock$NonfairSync",
"identityHashCode": 2060076420
}],
"lockInfo": null
...
{
"threadName": "DestroyJavaVM",
"threadId": 42,
"blockedTime": -1,
"blockedCount": 0,
"waitedTime": -1,
"waitedCount": 0,
"lockName": null,
"lockOwnerId": -1,
"lockOwnerName": null,
"daemon": false,
"inNative": false,
"suspended": false,
"threadState": "RUNNABLE",
"priority": 5,
"stackTrace": [],
"lockedMonitors": [],
"lockedSynchronizers": [],
"lockInfo": null
}]
}
/trace:該端點用來返回基本的HTTP跟蹤資訊。預設情況下,跟蹤資訊的儲存採用。
操作控制類
/shutdown:配置檔案中配置開啟此功能:
management.endpoint.shutdown.enabled=true
使用 curl 模擬 post 請求此介面:
curl -X POST "http://localhost:8080/actuator/shutdown"
顯示結果為:
{
"message": "Shutting down, bye..."
}
小結
本篇文章介紹了SpringBoot Actuator監控的基本功能和詳解,下篇文章將會帶大家瞭解一下該功能在Spring Boot中的實現原理。歡迎關注公眾號“程式新視界”。
原文連結:《Spring Boot Actuator監控使用詳解》
相關推薦
Spring Boot Actuator監控使用詳解
在企業級應用中,學習瞭如何進行SpringBoot應用的功能開發,以及如何寫單元測試、整合測試等還是不夠的。在實際的軟體開發中還需要:應用程式的監控和管理。SpringBoot的Actuator模組實現了應用的監控與管理。 Actuator簡介 生產系統中,往往需要對系統實際執行的情況(例如cpu、io、di
Spring Boot 之 HelloWorld詳解
www repos lookup dex lns jar nap put epo SpringBoot介紹~<暫時假裝有> 配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht
springboot(十九):使用Spring Boot Actuator監控應用
app mit 自動配置 erro 興趣 ask 5.0 應用監控 載器 微服務的特點決定了功能模塊的部署是分布式的,大部分功能模塊都是運行在不同的機器上,彼此通過服務調用進行交互,前後臺的業務流會經過很多個微服務的處理和傳遞,出現了異常如何快速定位是哪個環節出現了問題?
Spring Boot異常處理詳解
在Spring MVC異常處理詳解中,介紹了Spring MVC的異常處理體系,本文將講解在此基礎上Spring Boot為我們做了哪些工作。下圖列出了Spring Boot中跟MVC異常處理相關的類。 Spring Boot在啟動過程中會根據當前環境進行AutoConfigurat
spring-boot入門程式詳解
1.建立一個普通的maven專案,專案名為boot-learnning 2.在pom.xml新增parent依賴 <parent> <groupId>org.springframework.boot</groupId> <
spring boot之配置詳解
spring boot支援的配置檔案 spring boot支援兩種型別的配置檔案,一種是傳統的預設配置檔案application.properties ,還有一種是現在被廣泛推薦使用的YAML檔案。書寫上properties是採用鍵值對的形式來表示,而YAML是以類似大綱的縮排形式,這
SpringBoot非官方教程 | 第二篇:Spring Boot配置檔案詳解
springboot採納了建立生產就緒Spring應用程式的觀點。 Spring Boot優先於配置的慣例,旨在讓您儘快啟動和執行。在一般情況下,我們不需要做太多的配置就能夠讓spring boot正常執行。在一些特殊的情況下,我們需要做修改一些配置,或者需要有自己的配置屬性。 當我們
Spring boot 配置檔案詳解 (properties 和yml )
從其他框架來看 我們都有自己的配置檔案, hibernate有hbm,mybatis 有properties, 同樣, Spring boot 也有全域性配置檔案。 Springboot使用一個全域性的配置檔案,而且配置檔案的名字是固定的。 有兩種 application.properties
Spring Boot 配置檔案詳解:自定義屬性、隨機數、多環境配置等
相信很多人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。我們在Spring Boot使用過程中,最直觀的感受就是沒有了原來自己整合Spring應用時繁多的XML配置內容,替代它的是在pom.xml中引入模組化的Starter POMs,其中各個模組都有自己的預
Spring boot 2 -配置詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Spring Boot Actuator監控(各個介面介紹)
Spring Boot Actuator 提供了 一些介面,向外部提供本應用程式的監控資訊。 介面分為三大類: 應用配置類:獲取應用程式中載入的應用配置、環境變數、自動化配置報告等與Spring Boot應用密切相關的配置類資訊。 度量指標類:獲取應用程式執行過程中
SpringBoot學習第二篇:Spring Boot配置檔案詳解
原文首發於:https://www.fangzhipeng.com/springboot/2017/07/11/springboot2-config-file/ 本文出自方誌朋的部落格 springboot採納了建立生產就緒Spring應用程式的觀點。 Spring Boot優先於配置的慣例,旨
Spring Boot配置檔案詳解-ConfigurationProperties和Value優缺點-(轉)好文
文章轉自 http://www.cnblogs.com/itdragon/p/8686554.html Spring Boot提供了兩種常用的配置檔案,分別是properties檔案和yml檔案。他們的作用都是修改Spring Boot自動配置的預設值。相對於properties檔案而言,yml檔
Spring Boot 整合 FreeMarker 詳解案例
一、Springboot 那些事 SpringBoot 很方便的整合 FreeMarker ,DAO 資料庫操作層依舊用的是 Mybatis,本文將會一步一步到來如何整合 FreeMarker 以及配置的詳解 二、執行 springboot-freemarker 工程 1.資
Spring Boot事務管理詳解
什麼是事務? 我們在開發企業應用時,對於業務人員的一個操作實際是對資料讀寫的多步操作的結合。由於資料操作在順序執行的過程中,任何一步操作都有可能發生異常,異常會導致後續操作無法完成,此時由於業務邏輯並未正確的完成,之前成功操作資料的並不可靠,需要在這種情況下進行回退。 事務的作用就是為了
企業級 SpringBoot 教程 (二)Spring Boot配置檔案詳解
springboot採納了建立生產就緒Spring應用程式的觀點。 Spring Boot優先於配置的慣例,旨在讓您儘快啟動和執行。在一般情況下,我們不需要做太多的配置就能夠讓spring boot正常執行。在一些特殊的情況下,我們需要做修改一些配置,或者需要有自己的配置屬性
第二篇:Spring Boot配置檔案詳解
Spring Boot採納了建立生產就緒Spring應用程式的觀點。 Spring Boot優先於配置的慣例,旨在讓您儘快啟動和執行。在一般情況下,我們不需要做太多的配置就能夠讓Spring Boot正常執行。在一些特殊的情況下,我們需要做一些配置修改,或者配置自定義屬性。 自定義屬
轉載:SpringBoot非官方教程 | 第二篇:Spring Boot配置檔案詳解
springboot採納了建立生產就緒Spring應用程式的觀點。 Spring Boot優先於配置的慣例,旨在讓您儘快啟動和執行。在一般情況下,我們不需要做太多的配置就能夠讓spring boot正常執行。在一些特殊的情況下,我們需要做修改一些配置,或者需要
Spring Boot 配置檔案詳解
簡介 Spring Boot使用“習慣由於配置”(專案中存在大量預設的配置,而且內建tomcat)的理念,讓你的無需手動進行配置就可以將專案執行起來。使用Spring Boot很容易建立一個獨立執行的、準生產級別的Spring框架的專案。同時,Spring Boot還提供一
Spring Boot(3)---Spring Boot啟動器Starter詳解
Spring Boot的啟動器Starter詳解 Spring Boot 簡化了 Spring 應用開發,不需要配置就能執行 Spring 應用, Spring Boot 管理 Spring 容器、第三 方外掛 並提供很多預設系統級的服務。大部 Spring 應用,