springboot配置文件

在配置文件中使用自定义参数

myport=8080
server.port=${myport}

在代码里面使用自定义参数

通过注解@Value来加载自定义参数

  • PlaceHolder方式 ${} 例@Value("${abc}")
  • SpEL方式 #{} 例@Value("#{abc}")

在配置文件中使用随机数

  • 随机字符串
    com.zml.str=${random.value}
  • 随机int
    com.zml.intval=${random.int}
  • 随机long
    com.zml.longval=${random.long}
  • 10以内的随机数
    com.zml.intval=${random.int(10)}
  • 10-20随机数
    com.zml.intval=${random.int[10,20]}

使用不同配置文件启动

创建一个简单的springboot应用
创建三个配置文件application.properties,application-dev.properties,application-test.properties

application.properties

spring.profiles.active=dev

application-dev.properties

spring.application.name=config-client
server.port=8080

application-test.properties

spring.application.name=config-client
server.port=8081

启动之后,系统使用了8080端口启动,使用dev配置文件
在通过java -jar方式启动的时候,可以通过带参数,在启动的时候动态使用配置文件,不带参数,默认使用application.properties里面配置的配置文件

java -jar xxx.jar --spring.profiles.active=test

系统使用8081端口,使用test配置文件

配置文件加载顺序

优先级由高到低

  • 在命令行中传入的参数
  • SPRING_APPLICATION_JSON中的属性。SPRING_APPLICATION_JSON是以json格式配置在系统环境变量中的内容
  • java:comp/env中的JNDI属性
  • java的系统属性,可以通过System.getProperties()获取的内容。
  • 操作系统的环境变量
  • 通过random.*配置的随机属性
  • 位于当前应用jar包之外,针对不同{profile}环境的配置文件内容,例如application-{profile}.properties或是yaml定义的配置文件
  • 位于当前应用jar包之内,针对不同{profile}环境的配置文件内容,例如application-{profile}.properties或是yaml定义的配置文件
  • 位于当前应用jar包之外,application.properties和yaml定义的配置文件
  • 位于当前应用jar包之内,application.properties和yaml定义的配置文件
  • 在@Configuration注解修改的类中,通过@PropertySource注解定义的属性
  • 应用默认属性,使用SpringApplication.setDefaultProperties定义的内容

你可能感兴趣的:(springboot配置文件)