springboot项目通常使用fastjar打包,打包成一个独立的jar包,如何需要修改jar中的application.properties配置项则必须重新打包,这样很麻烦
springboot支持在启动时通过--参数=值 的方式设置参数值,并且优先级高于jar内的application.properties,例如在启动是设置server.port
java -jar spring-booot.jar --server.port=8081
于是我编写个脚本,读取当前目录下的application.propreties,使用上面的方式传入到jar中,因为传参的方式优先于配置文件,所以在外部application.properties中没有配置的会使用内部application.properties配置的值
脚本内容如下
#!/bin/sh
# chkconfig: 345 99 01
# description:springmvc
##############################
PRG="$0"
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
#############################
##########################
# custom