如需转载分享,请标明出处,且不用于盈利为目的,谢谢合作!
springboot项目配置文件(.yml、.properties),使用用环境变量加载配置动态值
本人在yml文件中进行了测试
1.yml文件配置如下:
spring:
application:
#Eureka服务注册中心名称
name: eureka-server
server:
#服务注册中心端口号
port: ${SERVER_PORT:8761}
eureka:
instance:
#服务注册中心主机名
hostname: localhost
client:
#是否向服务注册中心注册自己
register-with-eureka: false
#是否检索服务
fetch-registry: false
#服务注册中心的地址
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
testEvn: ${name:a default value}
2.测试的TestController如下:
package com.springcloud.erueka.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Configuration
public class TestController {
@Value("${testevn}")
String testenv;
@RequestMapping("/test")
public String test(){
return "" + testenv;
}
}
3.两种方法给动态变量赋值
(1)IntelliJ IDEA设置vm options的方式:
顶部工具栏---------》Run ---------》Edit configurations ---------》在server视图中,VM options中添加-DSERVER_PORT=9999 -DtestEvn=abc,点击保存
(2)打成jar包运行
java -DSERVER_PORT=9999 -DtestEvn=abc -jar xxx.jar
友情提醒:“=”号左右不能有空格,多个属性赋值用空格隔开;不给动态变量赋值直接启动项目程序会使用默认值变量名“:”号后面的值
4.效果图