springboot读取编译时传递的参数

发布于:2025-08-11 ⋅ 阅读:(16) ⋅ 点赞:(0)

需要借助application.properties的注入,才能进入到程序之中;

1.application.properties文件中配置:

customer.key=@abc.d@

2. pom文件中要配置替换规则:

<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<!-- 匹配 resources 下所有目录里的 .properties 文件 -->
<include>**/*.properties</include>
<!-- 匹配 resources 下所有目录里的 .xml 文件 -->
<include>**/*.xml</include>
<!-- 匹配 resources 下所有目录里的 .yml 文件 -->
<include>**/*.yml</include>
<!-- 匹配 resources 下所有目录里的 .yaml 文件 -->
<include>**/*.yaml</include>
<!-- 匹配 resources 下所有目录里的 .html 文件 -->
<include>**/*.html</include>
<!-- 匹配 resources 下所有目录里的 .js 文件 -->
<include>**/*.js</include>
<!-- 匹配 resources 下所有目录里的 .css 文件 -->
<include>**/*.css</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering> <!-- 二进制文件不过滤 -->
<includes>
<include>**/*.png</include>
<include>**/*.jpg</include>
<include>**/*.gif</include>
<include>**/*.jar</include>
<include>**/*.zip</include>
<include>**/*.jpeg</include>
</includes>
</resource>
</resources>

3.程序中进行读取:

@Value("${customer.key:1}")
private String value;

4. 编译的时候去传递,例如:mvn clean package -Dabc.d=test

补充说明 如果要指定profile;可以加上 mvn clean package -Dabc.d=test -P dev

----------------------------------------------------------------------------------------------------------------------------

@Value("${customer.key}") 这里不能通过${} 直接获取,${}获取的是运行时参数,@ @获取的是编译时候的参数,如果是运行时参数,传递为 java -jar -Ddefind.key=v app.jar ; 获取可以通过@Value("${defind.key}") 或者System.getProperty("defind.key") 直接获取

-----------------------------------------------------------------------------------------------------------------------------

java -jar  -Ddefind.key=v 设置的是jvm参数,java -jar --defind.key=v设置的是spring命令行参数,两个都可以通过@Value("${defind.key}")

Spring Boot 的配置优先级如下(从高到低):

  1. 命令行参数 --app.key=xxx

  2. application.properties / application.yml

  3. JVM 系统参数 -Dapp.key=xxx

  4. 环境变量 export app.key=xxx

  5. 默认值(在代码或配置中写死的)

所以:命令行参数 --app.key=xxx 优先级高于 -Dapp.key=xxx


网站公告

今日签到

点亮在社区的每一天
去签到