使用java -jar修改SpringBoot中application.properties的配置项

 更新时间:2023年02月13日 16:05:34   作者:思影影思  
这篇文章主要介绍了使用java -jar修改SpringBoot中application.properties的配置项问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java -jar修改SpringBoot中application.properties配置项

如果Spring Boot整合了Maven来管理项目依赖的话,常见的打包方式有jar和war。如果使用war包,若要运行项目,需要把war丢到Tomcat、JBoss之类的容器中。

此时修改配置文件,可以直接在解压后的classes/application.properties文件中修改配置项。

而倘若制作成jar包,如何修改application.properties中的配置项呢?

问题描述

application.properties

application.properties配置文件如下

# config for picket dynamicPool用于上传图片,static用于人脸库以图搜图
picket.dynamicFaceLib=1
picket.staticFaceLib=2
picket.similarity=0.7
picket.pushUrl=http://localhost:8080/api/event

比如说Spring Boot项目最后达成了jar包platform。则可以如下方式运行

前提

在Windows环境下配置了JDK环境变量。

C:\Users\lenovo\Desktop>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_131

C:\Users\lenovo\Desktop>java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

运行

使用如下方式运行。

java -jar platform.jar

由于制作的jar包不再存在application.properties文件,那么如何灵活的在命令行运行时指定picket.pushUrl,来修改事件的推送url呢?

解决方式

可以使用如下的方式来修改application.properties配置项的默认值

java -jar platform.jar --picket.pushUrl="http://192.168.1.110:8080/api/eventHappen"

此时便使用了修改后的值,而不再是application.properties文件中配置的值。

外部配置

Spring Boot允许使用properties文件、yaml文件或者命令行参数作为外部配置。

Spring Boot是可以基于jar包运行的,打成jar包的程序可以直接通过下面的命令行运(参见Spring Boot实战p143)

java -jar xx.jar

可以通过如下命令行修改Tomcat端口`

java -jar xx.jar --server.port=9090

Java:java -jar命令讲解

1. 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

#正常启动jar包
java -jar XXX.jar

#当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出。

2. 当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行

#当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行
java -jar XXX.jar &

3. 当窗口关闭时,程序也不会中止运行

#当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件
nohup java -jar XXX.jar &

4. 输出重定向到temp.file文件

#输出重定向到temp.file文件
nohup java -jar XXX.jar >temp.txt &

#即输出内容不打印到屏幕上,而是输出到temp.file文件中

5. 启动jar包或war包时,配置静态变量

#配置静态变量并不输出日志到控制台或者日志文件中
nohup java -jar  /data/server/ifsmp/ifsmp.war --spring.profiles.active=test --server.port=8080 >/dev/null 2>&1 &

# >/dev/null 2>&1 含义:
# 该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中

# -–spring.profiles.active=test 含义:
#连续的两个减号–就是对application.properties中的属性值进行赋值的标识,等价于我们在application.properties中添加属性spring.profiles.active=test

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring Security实现微信公众号网页授权功能

    Spring Security实现微信公众号网页授权功能

    这篇文章主要介绍了Spring Security中实现微信网页授权,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Mybatis之RowBounds分页原理详解

    Mybatis之RowBounds分页原理详解

    这篇文章主要介绍了Mybatis之RowBounds分页原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Spring IOC的相关注解运用详解

    Spring IOC的相关注解运用详解

    这篇文章主要介绍了Spring IOC的相关注解运用详解,纯注解实现IOC需要一个Java类代替xml文件,这个Java类上方需要添加@Configuration,表示该类是一个配置类,作用是代替配置文件,需要的朋友可以参考下
    2023-08-08
  • Java日常练习题,每天进步一点点(15)

    Java日常练习题,每天进步一点点(15)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • Java实现Redis哨兵的示例代码

    Java实现Redis哨兵的示例代码

    这篇文章主要介绍了Java实现Redis哨兵的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • springboot拦截器不拦截静态资源,只拦截controller的实现方法

    springboot拦截器不拦截静态资源,只拦截controller的实现方法

    这篇文章主要介绍了springboot拦截器不拦截静态资源,只拦截controller的实现方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Idea 自动生成测试的实现步骤

    Idea 自动生成测试的实现步骤

    当我们在写完一些接口方法后需要测试时,一个一个新建测试类比较麻烦 idea给我们提供了快捷办法,本文主要介绍了Idea 自动生成测试的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • java安全编码指南之:表达式规则说明

    java安全编码指南之:表达式规则说明

    这篇文章主要介绍了java安全编码指南之:表达式规则说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文)

    详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文)

    本篇文章主要介绍了详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-11-11
  • springboot 定时任务@Scheduled实现解析

    springboot 定时任务@Scheduled实现解析

    这篇文章主要介绍了springboot 定时任务@Scheduled实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09

最新评论