spring-boot 加载配置

最近开始用Spring-boot,对它还不够熟悉,在怎么加载配置上进了坑,因只知道一种加载配置的方式,每次配置改动后,就需重新打jar,制作镜像,spring-boot 被我用的土土的。

http://blog.csdn.net/isea533/article/details/50281151

Spring Boot 支持多种外部配置方式

  1. 命令行参数
  2. 来自java:comp/env的JNDI属性
  3. Java系统属性(System.getProperties())
  4. 操作系统环境变量
  5. RandomValuePropertySource配置的random.*属性值
  6. jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
  7. jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
    当前只会这一种
  8. jar包外部的application.properties或application.yml(不带spring.profile)配置文件
  9. jar包内部的application.properties或application.yml(不带spring.profile)配置文件
    @Configuration注解类上的@PropertySource
  10. 通过SpringApplication.setDefaultProperties指定的默认属性

1. 命令行参数

通过java -jar app.jar --name="Spring" --server.port=9090
方式来传递参数。
参数用--xxx=xxx的形式传递。
参数可以是我们自己定义的,也可以是Spring Boot中默认的参数。

2. jar包外部的应用配置

原启动脚本

#!/bin/bash
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8  -Duser.timezone=GMT+08"
$JAVA_HOME/bin/java  $JAVA_OPTS -jar /opt/tools/app.jar

现改成

#!/bin/bash
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8  -Duser.timezone=GMT+08"
mkdir /opt/tools/config
cd /opt/tools/config/
cp /opt/product/data/config/* .
$JAVA_HOME/bin/java $JAVA_OPTS -jar -Dspring.profiles.active=prod -Dspring.config.location=/opt/tools/config /opt/tools/app.jar

如果将代码写成
cp -R /opt/product/data/config/ /opt/tools/
启动应用时是会报错的,实在是让人费解。

你可能感兴趣的:(spring-boot 加载配置)