最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot?項(xiàng)目部署與監(jiān)控的過(guò)程

 更新時(shí)間:2025年12月16日 08:45:16   作者:guslegend  
SpringBoot項(xiàng)目部署在互聯(lián)網(wǎng)背景下前后端分離開(kāi)發(fā)已經(jīng)成為主流趨勢(shì),SpringBoot構(gòu)建web項(xiàng)目非常快速,只需要將其打成一個(gè)jar包,然后通過(guò)java-jar命令啟動(dòng),本文介紹SpringBoot?項(xiàng)目部署與監(jiān)控的過(guò)程,感興趣的朋友跟隨小編一起看看吧

SpringBoot項(xiàng)目部署

在如今的互聯(lián)網(wǎng)背景下前后端分離開(kāi)發(fā)已經(jīng)成為互聯(lián)網(wǎng)的主流趨勢(shì),SpringBoot構(gòu)建web項(xiàng)目已經(jīng)非??焖倭?,只需要將其打成一個(gè)jar包,然后通過(guò)java -jar jar包的名稱就可以啟動(dòng)。

jar包

首先我們需要導(dǎo)入springBoot的maven依賴

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

package完成后,會(huì)出現(xiàn)一個(gè)jar包

我們可以將jar包上傳到Linux服務(wù)器上面,以jar運(yùn)行(此處本地驗(yàn)證打包成功)

java -jar zdy-spring-boot-start-1.0-SNAPSHOT.jar

war包

首先我們需要修改pom.xml配置文件

<packaging>jar</packaging>
//修改為
<packaging>war</packaging>

然后在pom.xml文件中添加依賴

<!--添加servlet-api的依賴,用來(lái)打war包 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

還需要排除springboot內(nèi)置的tomcat干擾       

 <!--最終打成war包,排除內(nèi)置的tomcat-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

然后我們需要改造啟動(dòng)類

如果是war包發(fā)布,需要增加SpringBootServletInitializer子類,并重寫其configure方法,或者將main函數(shù)所在的類繼承SpringBootSerletInitializer,并重寫configure方法。

當(dāng)時(shí)打包為war時(shí)上傳tomact服務(wù)器訪問(wèn)項(xiàng)目始終報(bào)錯(cuò)404就是忽略了這個(gè)。

@SpringBootApplication
public class MainApplication  extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(MainApplication.class);
    }
}

war包和jar方式對(duì)比

SpringBoot 項(xiàng)目 jar 與 war 打包方式對(duì)比

啟動(dòng)與部署方式

jar 包:操作簡(jiǎn)單,通過(guò)java -jar xx.jar直接啟動(dòng),使用最廣泛;

war 包:需部署到 Tomcat 的 webapps 目錄,隨 Tomcat 啟動(dòng)而啟動(dòng)。

資源打包差異

jar 包:不會(huì)包含src/main/webapp下的內(nèi)容(若路徑錯(cuò)誤會(huì)出現(xiàn) 404);

war 包:會(huì)將src/main/webapp下的內(nèi)容打包進(jìn)去。

適用場(chǎng)景

選 jar 包:提供 rest 服務(wù)的項(xiàng)目,命令行運(yùn)行便捷;

選 war 包:含大量 css、js、html 且需頻繁改動(dòng)的項(xiàng)目(可直接替換靜態(tài)資源,無(wú)需重新打包上傳,效率更高)。

多環(huán)境部署

  • 在項(xiàng)目運(yùn)行中,包括多環(huán)境,如線上環(huán)境prod,開(kāi)發(fā)環(huán)境dev,測(cè)試緩存test;
  • 在不同的環(huán)境需要不同的配置,從而在不同的場(chǎng)景下去跑我們的程序;
  • 例如prod和dev環(huán)境下需要連接不同的數(shù)據(jù)庫(kù),配置不同的日志輸出;
  • SpringBoot對(duì)此提供了支持,一方面是@Profile注解,另一方面還有多資源配置文件。

@Profile

  • @Profile注解的作用是指定類和方法在特定的Profile環(huán)境生效,任何@Compoent@Configuration注解的類都可以使用@Profile注解;
  • 在使用DI來(lái)依賴注入的時(shí)候,能夠根據(jù)@Profile標(biāo)明的環(huán)境,將注入符合當(dāng)前環(huán)境的相應(yīng)的bean。

使用要求:

  • @Component或者@Configuration注解的類可以使用@profile;
  • @Profile中需要指定一個(gè)字符串,約定生效的環(huán)境。

@Profile的使用位置:

  • 修飾類
  • 修飾方法
  • 修飾注解

Profile激活

在實(shí)際使用中,注解中標(biāo)識(shí)了prod,test,qa等多個(gè)環(huán)境,運(yùn)行時(shí)使用哪個(gè)profile有spring.profiles.active控制,可以使用配置文件或命令行方式創(chuàng)建。

  1. 配置文件激活
spring:
  profiles:
    active: dev
  1. 命令行方式激活
java -jar spring-boot-config-0.1-SNAPSHOT.jar --spring.profiles.active=dev

多Proflie的資源文件

一般為4個(gè)配置文件:

  • application.properties 公共配置
  • application-dev.properties 開(kāi)發(fā)環(huán)境配置
  • application-test.properties 測(cè)試環(huán)境配置
  • application-prod.properties 生產(chǎn)環(huán)境配置

不同的properties配置文件也可以是在application.properties文件中來(lái)激活profile:spring.profiles.active = test

SpringBoot監(jiān)控

Auturator

  • 其是spring boot的一個(gè)附加功能,可以幫助我們?cè)趹?yīng)用程序生成環(huán)境是監(jiān)控和管理應(yīng)用程序;
  • 可以使用HTTP的各種請(qǐng)求來(lái)監(jiān)管,審計(jì),收集應(yīng)用的情況。

HTTP 方法

路徑

描述

GET

/auditevents

顯示應(yīng)用暴露的審計(jì)事件(如認(rèn)證進(jìn)入、訂單失效)

GET

/beans

描述應(yīng)用程序上下文里全部的 Bean 及它們的關(guān)系

GET

/conditions

(對(duì)應(yīng) 1.0 的 /autoconfig)提供自動(dòng)配置生效的條件情況,記錄哪些條件通過(guò) / 沒(méi)通過(guò)

GET

/configprops

描述配置屬性(包含默認(rèn)值)如何注入 Bean

GET

/env

獲取全部環(huán)境屬性

GET

/env/{name}

根據(jù)名稱獲取特定的環(huán)境屬性值

GET

/flyway

提供 Flyway 數(shù)據(jù)庫(kù)遷移信息

GET

/liquibase

顯示 Liquibase 數(shù)據(jù)庫(kù)遷移的詳細(xì)信息

GET

/health

報(bào)告應(yīng)用程序的健康指標(biāo)(由 HealthIndicator 實(shí)現(xiàn)類提供)

GET

/heapdump

dump 一份應(yīng)用的 JVM 堆信息

GET

/httptrace

顯示 HTTP 蹤跡,最近 100 個(gè) HTTP request/response

GET

/info

獲取應(yīng)用程序的定制信息(由 info 打頭的屬性提供)

GET

/logfile

返回 log 文件內(nèi)容(需配置 logging.file 或 logging.path)

GET

/loggers

顯示和修改配置的 loggers

GET

/metrics

報(bào)告各種應(yīng)用程序度量信息(如內(nèi)存用量、HTTP 請(qǐng)求計(jì)數(shù))

GET

/metrics/{name}

報(bào)告指定名稱的應(yīng)用程序度量值

GET

/scheduledtasks

展示應(yīng)用中的定時(shí)任務(wù)信息

GET

/sessions

若使用 Spring Session,展示應(yīng)用中的 HTTP sessions 信息

POST

/shutdown

關(guān)閉應(yīng)用程序(需配置 endpoints.shutdown.enabled=true)

GET

/mappings

描述全部的 URI 路徑,及它們和控制器(包含 Actuator 端點(diǎn))的映射關(guān)系

GET

/threaddump

獲取線程活動(dòng)的快照

體驗(yàn)Actuator

使用Actuator功能與springBoot使用其他功能一樣簡(jiǎn)單,只需要加入xml依賴

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

為了保證監(jiān)控接口的安全性,需要添加spring-boot-start-secuity依賴,訪問(wèn)應(yīng)用監(jiān)控端點(diǎn)是,都需要輸入驗(yàn)證信息。也可以選擇不加,不進(jìn)行安全管理。

編寫配置文件

配置詳情

Actuator 基礎(chǔ)配置(Spring Boot 2.x)

  1. 默認(rèn)開(kāi)放端點(diǎn):僅 /actuator/health/actuator/info(為安全考慮)。
  2. 端點(diǎn)暴露配置
  • 開(kāi)放所有端點(diǎn):
management.endpoints.web.exposure.include=*
  • 開(kāi)放部分端點(diǎn):
management.endpoints.web.exposure.include=beans,trace
  1. 自定義監(jiān)控路徑
management.endpoints.web.base-path=/manage

配置后訪問(wèn)地址變?yōu)?/manage/*

常用端點(diǎn)功能說(shuō)明

1. health
  • 作用:檢查應(yīng)用運(yùn)行狀態(tài)(高頻監(jiān)控點(diǎn)),可返回?cái)?shù)據(jù)庫(kù)連接、磁盤空間等異常原因。
  • 默認(rèn)開(kāi)放,訪問(wèn):http://localhost:8000/actuator/health,返回示例:
{
  "status": "UP",
  "components": {
    "db": {
      "status": "UP",
      "details": {
        "database": "MySQL",
        "result": 1,
        "validationQuery": "/* ping */ SELECT 1"
      }
    },
    "diskSpace": {
      "status": "UP",
      "details": {
        "total": 429496729600,
        "free": 295998197760,
        "threshold": 10485760
      }
    },
    "ping": {
      "status": "UP"
    },
    "redis": {
      "status": "UP",
      "details": {
        "version": "7.0.15"
      }
    }
  }
}
  • 內(nèi)置健康指標(biāo):DataSourceHealthIndicator(數(shù)據(jù)庫(kù))、DiskSpaceHealthIndicator(磁盤)等;可關(guān)閉指定指標(biāo):
management.health.redis.enabled=false
2. info
  • 作用:返回自定義配置的信息(以 info 開(kāi)頭的配置)。
  • 配置示例:
info.app.name=spring-boot-actuator
info.app.version=1.0.0
  • 訪問(wèn):http://localhost:8000/actuator/info,返回示例:
{
  "app": {
    "name": "SpringCacheDemo",
    "version": 1,
    "test": "test"
  }
}
3. beans
  • 作用:展示應(yīng)用中所有 Bean 的信息(別名、類型、作用域、依賴等)。
  • 訪問(wèn):http://localhost:8000/actuator/beans,返回示例包含 Bean 名稱、類型(如 TomcatEmbeddedServletContainerFactory)等。
4. conditions
  • 作用:查看自動(dòng)配置的生效 / 未生效條件(排查配置問(wèn)題)。
  • 訪問(wèn):http://localhost:8000/actuator/conditions,返回 positiveMatches(生效配置)、negativeMatches(未生效配置)及原因。
5. heapdump
  • 作用:生成 GZip 壓縮的 JVM 堆轉(zhuǎn)儲(chǔ)文件。
  • 訪問(wèn):http://localhost:8000/actuator/heapdump,可通過(guò) JDK 工具(如 VisualVM)分析內(nèi)存泄漏。
6. mappings
  • 作用:描述所有 URI 路徑與控制器的映射關(guān)系。
  • 訪問(wèn):http://localhost:8000/actuator/mappings,返回示例包含接口路徑(如 /hello)對(duì)應(yīng)的控制器方法。
7. threaddump
  • 作用:生成線程活動(dòng)快照,用于排查線程問(wèn)題(線程名、狀態(tài)、堆棧等)。
  • 訪問(wèn):http://localhost:8000/actuator/threaddump,返回線程的狀態(tài)(如 WAITING)、堆棧信息等。
8. shutdown
  • 作用:關(guān)閉應(yīng)用(需手動(dòng)開(kāi)啟)。
  • 開(kāi)啟配置:
management.endpoint.shutdown.enabled=true
  • 訪問(wèn)(僅支持 POST):
curl -X POST "http://localhost:8000/actuator/shutdown"
  • 返回示例:
{"message": "Shutting down, bye..."}

Spring Boot Admin

  • Spring Boot Admin 是一個(gè)針對(duì)spring-boot的actuator接口進(jìn)行UI美化封裝的監(jiān)控工具;
  • 他可以 返回在列表中瀏覽所有被監(jiān)控spring-boot項(xiàng)目的基本信息比如:Spring容器管理的所有的bean、 詳細(xì)的Health信息、內(nèi)存信息、JVM信息、垃圾回收信息、各種配置信息(比如數(shù)據(jù)源、緩存列表 和命中率)等,Threads 線程管理,Environment 管理等。

服務(wù)端

配置xml文件      

<dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
            <version>2.7.10</version> 
        </dependency>

需要在啟動(dòng)類上添加注解

@EnableAdminServer

客戶端

添加maven依賴

<dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.1.0</version>
        </dependency>

配置yml文件

server:
  port: 8080
# 自定義配置信息用于“/actuator/info”讀取
info:
  name: 老王
  age: 100
  phone: 110
# 通過(guò)下面的配置啟用所有的監(jiān)控端點(diǎn),默認(rèn)情況下,這些端點(diǎn)是禁用的:
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always
# 將Client作為服務(wù)注冊(cè)到Server,通過(guò)Server來(lái)監(jiān)聽(tīng)項(xiàng)目的運(yùn)行情況
spring:
  boot:
    admin:
      client:
        url: http://localhost:8081
# #application實(shí)例名
# application:
#   name: spring-boot-admin-client

到此這篇關(guān)于java線程池的文章就介紹到這了,更多相關(guān)java線程池內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 為什么MyBatis中常用#{}而不使用${}

    為什么MyBatis中常用#{}而不使用${}

    本文主要介紹了為什么MyBatis中常用#{}而不使用${},文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-09-09
  • springsecurity6配置自定義路徑身份認(rèn)證的實(shí)現(xiàn)

    springsecurity6配置自定義路徑身份認(rèn)證的實(shí)現(xiàn)

    本文主要介紹了springsecurity6配置自定義路徑身份認(rèn)證的實(shí)現(xiàn),通過(guò)使用自定義的AuthorizationManager和MyService,可以實(shí)現(xiàn)更靈活的訪問(wèn)控制,感興趣的可以了解一下
    2025-03-03
  • SpringSecurity 自定義認(rèn)證登錄的項(xiàng)目實(shí)踐

    SpringSecurity 自定義認(rèn)證登錄的項(xiàng)目實(shí)踐

    本文主要介紹了SpringSecurity 自定義認(rèn)證登錄的項(xiàng)目實(shí)踐,以手機(jī)驗(yàn)證碼登錄為例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • 深入理解與應(yīng)用Java抽象類

    深入理解與應(yīng)用Java抽象類

    Java抽象類是一個(gè)非常重要的概念,它允許我們定義包含抽象方法和非抽象方法的類,并為子類提供通用的屬性和方法,本文給大家介紹Java抽象類的理解與應(yīng)用,感興趣的朋友一起看看吧
    2025-04-04
  • java線程并發(fā)countdownlatch類使用示例

    java線程并發(fā)countdownlatch類使用示例

    javar的CountDownLatch是個(gè)計(jì)數(shù)器,它有一個(gè)初始數(shù),等待這個(gè)計(jì)數(shù)器的線程必須等到計(jì)數(shù)器倒數(shù)到零時(shí)才可繼續(xù)。
    2014-01-01
  • Java Web 實(shí)現(xiàn)QQ登錄功能一個(gè)帳號(hào)同一時(shí)間只能一個(gè)人登錄

    Java Web 實(shí)現(xiàn)QQ登錄功能一個(gè)帳號(hào)同一時(shí)間只能一個(gè)人登錄

    對(duì)于一個(gè)帳號(hào)在同一時(shí)間只能一個(gè)人登錄,下文給大家介紹的非常詳細(xì),對(duì)java web qq 登錄功能感興趣的朋友一起看看吧
    2016-11-11
  • Spring Data JPA 簡(jiǎn)單查詢--方法定義規(guī)則(詳解)

    Spring Data JPA 簡(jiǎn)單查詢--方法定義規(guī)則(詳解)

    下面小編就為大家?guī)?lái)一篇Spring Data JPA 簡(jiǎn)單查詢--方法定義規(guī)則(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • idea如何為java程序添加啟動(dòng)參數(shù)

    idea如何為java程序添加啟動(dòng)參數(shù)

    文章介紹了如何在Java程序中添加啟動(dòng)參數(shù),包括program arguments、VM arguments和Environment variables,并解釋了如何在代碼中使用System類獲取這些參數(shù)
    2025-01-01
  • Java Spring分別實(shí)現(xiàn)定時(shí)任務(wù)方法

    Java Spring分別實(shí)現(xiàn)定時(shí)任務(wù)方法

    這篇文章主要為大家詳細(xì)介紹了Java與Spring設(shè)置動(dòng)態(tài)定時(shí)任務(wù)的方法,定時(shí)任務(wù)的應(yīng)用場(chǎng)景十分廣泛,如定時(shí)清理文件、定時(shí)生成報(bào)表、定時(shí)數(shù)據(jù)同步備份等
    2022-07-07
  • mybatis中的延遲加載和一二級(jí)緩存深入解析

    mybatis中的延遲加載和一二級(jí)緩存深入解析

    延遲加載是MyBatis對(duì)關(guān)聯(lián)查詢的優(yōu)化機(jī)制,查詢主對(duì)象時(shí),不立即查詢其關(guān)聯(lián)對(duì)象(如用戶和賬戶的一對(duì)多關(guān)系),僅在實(shí)際使用關(guān)聯(lián)對(duì)象(調(diào)用 getter 方法)時(shí),才觸發(fā)關(guān)聯(lián)查詢的 SQL 執(zhí)行,這篇文章給大家介紹mybatis中的延遲加載和一二級(jí)緩存,感興趣的朋友一起看看吧
    2025-12-12

最新評(píng)論

南乐县| 乌拉特后旗| 双牌县| 西充县| 佛教| 舟曲县| 盘山县| 江孜县| 凤庆县| 合江县| 景德镇市| 河津市| 新泰市| 固安县| 青川县| 密山市| 赤水市| 南和县| 黄浦区| 施秉县| 修水县| 肃南| 高唐县| 嘉峪关市| 桂平市| 中宁县| 靖宇县| 张北县| 凤山县| 乾安县| 灵石县| 庐江县| 微山县| 仲巴县| 大名县| 察哈| 曲靖市| 丹巴县| 武胜县| 申扎县| 广宗县|