您的位置:首页 > 编程语言 > Java开发

spring boot通过jar包启动时,配置文件的加载顺序

2017-08-01 18:53 1041 查看

一.配置文件的生效顺序,会对值进行覆盖

1. @TestPropertySource 注解 
2. 命令行参数 
3. Java系统属性(System.getProperties()) 
4. 操作系统环境变量 
5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource 
6. 在打包的jar外的应用程序配置文件(通过
java
-jar demo.jar
--spring.config.location=/path/test_evn.properties
) 
7. 在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量) 
8. 在@Configuration类上的@PropertySource注解 
9. 默认属性(使用SpringApplication.setDefaultProperties指定) 

所以,正对6和7的情况,我们一般在应用程序外部放置配置yml文件,防止每次发布时被篡改哦!

nohup java -jar service-1.0.0.jar > service-1.0.0.log 2>&1 &

详情可以参考:http://www.cnblogs.com/softidea/p/5759180.html

二.配置随机值 

roncoo.secret=${random.value} 
roncoo.number=${random.int} 
roncoo.bignumber=${random.long} 
roncoo.number.less.than.ten=${random.int(10)} 
roncoo.number.in.range=${random.int[1024,65536]} 

读取使用注解:@Value(value = "${roncoo.secret}") 

注:出现黄点提示,是要提示配置元数据,可以不配置 

三.属性占位符 

当application.properties里的值被使用时,它们会被存在的Environment过滤,所以你能够引用先前定义的值(比如,系统属性)。 
roncoo.name=www.roncoo.com 
roncoo.desc=${roncoo.name} is a domain name 

四.Application属性文件,按优先级排序,位置高的将覆盖位置低的 

1. 当前目录下的一个/config子目录 
2. 当前目录 
3. 一个classpath下的/config包 
4. classpath根路径(root) 
这个列表是按优先级排序的(列表中位置高的将覆盖位置低的) 

五. 配置应用端口和其他配置的介绍 

#端口配置: 
server.port=8090 
#时间格式化 
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss 
#时区设置 
spring.jackson.time-zone=Asia/Chongqing 

六. 使用YAML代替Properties 

注意写法:冒号后要加个空格 

常用的启动项目的shell脚本:

start.sh

#!/bin/sh

rm -f tpid

nohup java -jar service-1.0.0.jar --spring.profiles.active=application.yml > service-1.0.0.log 2>&1 &

echo $! > tpid

stop.sh

#!/bin/sh

tpid=`cat tpid | awk '{print $1}'`

tpid=`ps -aef | grep $tpid | awk '{print $2}' |grep $tpid`

if [ ${tpid} ]; then

        kill -9 $tpid

fi

check.sh

#!/bin/sh

tpid=`cat tpid | awk '{print $1}'`

tpid=`ps -aef | grep $tpid | awk '{print $2}' |grep $tpid`

if [ ${tpid} ]; then

        echo App is running.

else

        echo App is NOT running.

fi

kill.sh

#!/bin/sh

# kill -9 `ps -ef|grep 项目名称|awk '{print $2}'`

kill -9 `ps -ef|grep demo|awk '{print $2}'`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: