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

Spring?Boot?啟動參數(shù)之如何優(yōu)雅地控制你的應(yīng)用(最新推薦)

 更新時間:2025年04月01日 11:09:31   作者:王達舒1994  
Spring Boot 提供了哪些方式來配置這些啟動參數(shù),今天我們就來詳細解析 Spring Boot 啟動參數(shù)的各種用法,并附帶代碼示例,讓你可以靈活掌控應(yīng)用的啟動過程,需要的朋友可以參考下

Spring Boot 啟動參數(shù)終極解析:如何優(yōu)雅地控制你的應(yīng)用?

在使用 Spring Boot 開發(fā)應(yīng)用時,我們通常需要根據(jù)不同的環(huán)境(開發(fā)、測試、生產(chǎn))或特定需求調(diào)整啟動參數(shù),例如:

  • 修改默認端口
  • 指定不同的配置文件
  • 控制 JVM 內(nèi)存大小
  • 傳遞自定義參數(shù)

那么,Spring Boot 提供了哪些方式來配置這些啟動參數(shù)?今天我們就來詳細解析 Spring Boot 啟動參數(shù)的各種用法,并附帶代碼示例,讓你可以靈活掌控應(yīng)用的啟動過程。

一、啟動參數(shù)的常見傳遞方式

Spring Boot 允許我們通過以下幾種方式傳遞啟動參數(shù):

方式適用場景示例
命令行參數(shù)適用于臨時修改配置java -jar app.jar --server.port=8081
application.properties/yml適用于項目默認配置server.port=8081
環(huán)境變量適用于 Docker/K8S 部署export SERVER_PORT=8081
JVM 啟動參數(shù)適用于調(diào)整 JVM 運行時行為-Xmx512m -Dspring.profiles.active=prod
System.getProperty() 讀取適用于自定義動態(tài)參數(shù)System.getProperty("custom.param")

接下來,我們逐個解析這些方式的用法和示例代碼。

二、通過命令行參數(shù)傳遞啟動參數(shù)

最簡單的方式是在啟動 jar 文件時,使用 --參數(shù)名=值 的格式來傳遞參數(shù)。

示例:修改 Spring Boot 端口

java -jar myapp.jar --server.port=8081

效果:應(yīng)用啟動后,監(jiān)聽的端口會變?yōu)?8081。

如果想傳遞多個參數(shù),可以這樣寫:

java -jar myapp.jar --server.port=8081 --spring.application.name=myapp

注意:命令行參數(shù)的優(yōu)先級比 application.properties 更高,即使 application.properties 里定義了 server.port=8080,命令行傳遞的 8081 仍然會覆蓋它。

三、使用 application.properties 或 application.yml 配置參數(shù)

Spring Boot 提供了 application.properties(或 application.yml)來管理應(yīng)用配置,這種方式適用于默認參數(shù)配置。

示例:application.properties

server.port=8082
spring.application.name=myapp
logging.level.root=INFO

示例:application.yml

server:
  port: 8082
spring:
  application:
    name: myapp
logging:
  level:
    root: INFO

優(yōu)點
? 適用于長期配置,不用每次啟動都傳遞參數(shù)。
? 配置清晰,可集中管理多個環(huán)境的參數(shù)。

缺點

  • 配置是靜態(tài)的,運行時修改需要重啟應(yīng)用。
  • 無法動態(tài)傳遞參數(shù)。

四、使用環(huán)境變量傳遞參數(shù)

在 Docker 或 Kubernetes(K8S)等容器環(huán)境中,通常使用環(huán)境變量傳遞參數(shù)。Spring Boot 默認支持從環(huán)境變量讀取參數(shù)。

示例:設(shè)置環(huán)境變量并啟動應(yīng)用

export SERVER_PORT=9090
export SPRING_APPLICATION_NAME=MySpringApp
java -jar myapp.jar

或者在 Windows cmd 中:

set SERVER_PORT=9090
java -jar myapp.jar

效果:Spring Boot 會自動讀取 SERVER_PORT 并將其作為 server.port 的值,即應(yīng)用會運行在 9090 端口。

五、使用 JVM 啟動參數(shù)傳遞參數(shù)

如果我們希望在 JVM 層面?zhèn)鬟f參數(shù),可以使用 -D 選項。

示例:指定運行環(huán)境

java -Dspring.profiles.active=prod -jar myapp.jar

在代碼中可以這樣獲?。?/p>

String profile = System.getProperty("spring.profiles.active");
System.out.println("當前環(huán)境:" + profile);

示例:限制 JVM 內(nèi)存

java -Xmx512m -Xms256m -jar myapp.jar
  • -Xmx512m:最大內(nèi)存 512MB
  • -Xms256m:初始內(nèi)存 256MB

應(yīng)用場景
? 適用于不同環(huán)境(開發(fā)、測試、生產(chǎn))的參數(shù)切換。
? 適用于 JVM 級別的優(yōu)化(如 GC、線程管理等)。

六、Spring Boot 讀取啟動參數(shù)的代碼示例

在 Spring Boot 應(yīng)用中,我們可以通過 @Value、EnvironmentSystem.getProperty() 讀取啟動參數(shù)。

1. 通過 @Value 讀取參數(shù)

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/config")
public class ConfigController {
    @Value("${server.port}")
    private String serverPort;
    @Value("${spring.application.name}")
    private String appName;
    @GetMapping("/info")
    public String getConfigInfo() {
        return "App: " + appName + ", Running on Port: " + serverPort;
    }
}

2. 通過 Environment 讀取參數(shù)

import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class EnvController {
    private final Environment env;
    public EnvController(Environment env) {
        this.env = env;
    }
    @GetMapping("/env")
    public String getEnvInfo() {
        return "Profile: " + env.getProperty("spring.profiles.active") +
               ", Server Port: " + env.getProperty("server.port");
    }
}

3. 通過 System.getProperty() 讀取 JVM 級別參數(shù)

@GetMapping("/jvm")
public String getJvmParams() {
    return "JVM Param: " + System.getProperty("custom.param", "默認值");
}

如果我們用以下方式啟動應(yīng)用:

java -Dcustom.param=myValue -jar myapp.jar

那么 /jvm 接口會返回:

JVM Param: myValue

七、總結(jié):如何選擇合適的啟動參數(shù)方式?

方式適用場景是否可動態(tài)修改優(yōu)先級
命令行參數(shù)適用于臨時配置,如測試??? 最高
application.properties適用于默認配置??? 低
環(huán)境變量適用于容器化部署??? 高
JVM 參數(shù)適用于調(diào)整 JVM 行為??? 高

總結(jié):最佳實踐

1?? 開發(fā)環(huán)境:使用 application.properties 作為默認配置。
2?? 測試環(huán)境:使用命令行參數(shù)或環(huán)境變量傳遞測試配置。
3?? 生產(chǎn)環(huán)境:使用 -Dspring.profiles.active=prod + 環(huán)境變量,實現(xiàn)動態(tài)配置管理。

?? 掌握 Spring Boot 啟動參數(shù),你的應(yīng)用將更加靈活高效! ??

到此這篇關(guān)于Spring Boot 啟動參數(shù)終極解析:如何優(yōu)雅地控制你的應(yīng)用的文章就介紹到這了,更多相關(guān)Spring Boot 啟動參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot項目中通過@Value給參數(shù)賦值失敗的解決方案

    SpringBoot項目中通過@Value給參數(shù)賦值失敗的解決方案

    springboot項目中通過@Value給屬性附值失敗,給參數(shù)賦值失敗,打印為空值,文中通過代碼示例給大家介紹的非常詳細,對大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • Mybatis傳list參數(shù)調(diào)用oracle存儲過程的解決方法

    Mybatis傳list參數(shù)調(diào)用oracle存儲過程的解決方法

    怎么利用MyBatis傳List類型參數(shù)到數(shù)據(jù)庫存儲過程中實現(xiàn)批量插入數(shù)據(jù)?接下來通過本文給大家介紹Mybatis傳list參數(shù)調(diào)用oracle存儲過程,需要的朋友可以參考下
    2017-03-03
  • Spring Data JPA多表聯(lián)合查詢的實例演示

    Spring Data JPA多表聯(lián)合查詢的實例演示

    本文主要介紹了Spring Data JPA多表聯(lián)合查詢的實例演示,包括一對一、一對多、多對一、多對多關(guān)系,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-09-09
  • Java實現(xiàn)簡單猜拳游戲

    Java實現(xiàn)簡單猜拳游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單猜拳游戲,輸入字符,不輸入數(shù)字,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Spring Security十分鐘入門教程

    Spring Security十分鐘入門教程

    這篇文章主要介紹了Spring Security入門教程,Spring Security是一個能夠為基于Spring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架
    2022-09-09
  • java中的值傳遞和引用傳遞的區(qū)別分析

    java中的值傳遞和引用傳遞的區(qū)別分析

    本文介紹了“java中的值傳遞和引用傳遞的區(qū)別分析”,需要的朋友可以參考一下
    2013-03-03
  • MyBatis-Plus流式查詢的實現(xiàn)示例

    MyBatis-Plus流式查詢的實現(xiàn)示例

    MyBatis-Plus 從 3.5.4 版本開始支持流式查詢,通過ResultHandler接口實現(xiàn)結(jié)果集的流式查詢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • SpringBoot防止大量請求攻擊的實現(xiàn)

    SpringBoot防止大量請求攻擊的實現(xiàn)

    在有些特定的時候需要加上IP訪問時間限制,防止一個IP多次訪問請求,本文主要介紹了SpringBoot防止大量請求攻擊的實現(xiàn),感興趣的可以了解一下
    2021-11-11
  • Springmvc基于fastjson實現(xiàn)導包及配置文件

    Springmvc基于fastjson實現(xiàn)導包及配置文件

    這篇文章主要介紹了Springmvc基于fastjson實現(xiàn)導包及配置文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • SpringBoot項目依賴和配置最新示例講解

    SpringBoot項目依賴和配置最新示例講解

    這篇文章主要介紹了SpringBoot項目依賴和配置,這里主要是搭建項目常用到的maven依賴以及搭建項目會需要用到的一些配置文件,本文通過示例代碼給大家詳細講解,需要的朋友可以參考下
    2022-11-11

最新評論

昌吉市| 马鞍山市| 兰考县| 家居| 清苑县| 婺源县| 福贡县| 泸溪县| 固原市| 井研县| 鄂托克前旗| 洛扎县| 石城县| 潞城市| 邵阳市| 禄劝| 华阴市| 荥经县| 丰宁| 南昌县| 吴江市| 邵阳县| 阳东县| 张掖市| 邵阳市| 崇左市| 武宣县| 敦煌市| 铜陵市| 常山县| 贞丰县| 惠水县| 攀枝花市| 莎车县| 集安市| 绥芬河市| 石泉县| 隆德县| 江油市| 翁源县| 凤阳县|