springboot war放入tomcat启动怎么指定使用外部application.properties

springboot war放入tomcat启动怎么指定使用外部application.properties

阅读 13.8k
5 个回答

java -jar location_of_your_jar_file.jar --spring.config.location=location_of_your_config_file.properties

Resource支持 file:d:/myspring/banner.txt 这种方式,
那么 @PropertySource("file:///user/myspring/application.properties") 应该也是可以的,可以试下,我没尝试过。

可以在tomcat的bin目录下的catalina.sh文件里面,添加环境变量
例如:tomcat目录名为demo。

首先,修改catalina.sh文件
在230行左右

f [ -z "$JSSE_OPTS" ] ; then
  JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
fi
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"
#添加配置文件路径

#=======================WEB APP===============================
JAVA_OPTS="$JAVA_OPTS -DWEB APP_PROPERTY_FILE=/home/tomcat/demo/conf/WebProperties.properties"
#=======================WEB APP================================

然后,将WebProperties.properties文件上传到名为demo的tamcat下的conf目录下

最后,项目里面导入配置文件时,使用${WEB APP_PROPERTY_FILE}即可获取到配置文件路径。

本地开发时,在导入配置文件时,使用filePath="file:C/Test/WebProperties.properties"方式导入即可。当然,也可以配置环境变量。

以上就是我们项目里面的解决方案。可能因环境不同有所差异,自己参考吧

打成war包的话确实不太好弄,不过在上线之前不是已经改为线上的配置了吗 或者 定义多个配置文件 使用命令启动时指定使用哪一个

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题