您的位置 首页 >  博文

Springboot多环境配置及使用

一、问题

软件开发中经常有开发环境、测试环境、生产环境,而且一般这些环境配置会各不相同,手动改配置麻烦且容易出错,如何管理不同环境的配置参数呢?spring-boot + maven可以解决不同环境独立配置不同参数的问题。

二、多环境配置

不同环境的配置yml文件名不一样:

1application-dev.yml(开发环境)
2application-test.yml(测试环境)
3application-prd.yml(生产环境)

eg:

三、配置文件

application-dev.yml配置示例:

 1web:
2  resource-path: D:/dreamer-cms/
3
4spring: 
5  datasource: 
6    name: dev
7    url: jdbc:mysql://127.0.0.1:3306/dreamer-cms?serverTimezone=GMT&useSSL=false&useUnicode=true&characterEncoding=UTF8
8    username: root
9    password: root
10    driver-class-name: com.mysql.cj.jdbc.Driver
11  redis:
12    host: 127.0.0.1
13    port: 6379
14    timeout: 2000
15    password: YTU3e^u!gN^6HHPm
16    jedis:
17      pool:
18        max-idle: 100
19        min-idle: 50
20        max-wait: -1

application.yml

1spring:
2  profiles:
3    active: dev #如果要切换不同环境,只需要修改spring.profiles.active即可。

如果要切换不同环境,只需要修改spring.profiles.active即可。application-prd.yml和dev配置一样,只修改配置项的值即可。

四、读取配置参数

1、读取单个配置参数:

 1@Component
2public class FileConfiguration {
3    @Value("${web.resource-path}")
4    private String resourceDir;
5
6    public String getResourceDir() {
7        return resourceDir;
8    }
9
10    public void setResourceDir(String resourceDir) {
11        this.resourceDir = resourceDir;
12    }
13}

如果只是读取单个配置信息可以直接使用@Value注解,如果要读取多个配置,建议使用@ConfigurationProperties(prefix = "web")注解,prefix="web"则表示读取web下的配置。如下代码:
2、读取多个配置参数:

1web:
2  name: wangjn
3  age: 18
1@Component
2@ConfigurationProperties(prefix = "web")
3public class WebConfig {
4    private String name;
5    private Integer age;
6    //省略getter、setter
7}

五、验证环境参数

 1@RestController
2public class TestController {
3    @Autowired
4    private WebConfig webConfig;
5
6    @RequestMapping("/env")
7    @ResponseBody
8    public Object testEnv() {
9        return webConfig;
10    }
11}

六、启动设置环境

1、启动jar包时设置spring.profiles.active

1java -jar muti-env-config.jar --spring.profiles.active=prd

2、maven打包时候设置环境(设置 prd 环境)

1clean package -DskipTests -Pprd


关于作者: 王俊南(Jonas)

昨夜寒蛩不住鸣。惊回千里梦,已三更。起来独自绕阶行。人悄悄,帘外月胧明。 白首为功名。旧山松竹老,阻归程。欲将心事付瑶琴。知音少,弦断有谁听。

热门文章