SpringBoot配置文件多环境

SpringBoot配置文件多环境

在应用程序的开发过程中,我们常会设计不同的环境,例如:开发环境、测试环境和生产环境,这些环境对应的数据库等配置可能都是不同的。因此我们需要根据不同的环境加载不同的配置文件。SpringBoot给我们提供了这么一种机制,我们只需要简单的配置就能实现。本文将详细介绍SpringBoot 如何配置多环境。

1. 创建多环境配置文件

在SpringBoot项目的resources目录下,创建application.yml配置文件,并在这个文件的同级目录下创建application-dev.yml和application-prod.yml两个配置文件。

src
  └── main
       └── resources
            ├── application.yml
            ├── application-dev.yml
            ├── application-prod.yml

在application.yml文件中定义公共的配置信息,如:

spring:
  application:
    name: demo

在application-dev.yml和application-prod.yml文件中定义各自环境的配置信息,如:

# application-dev.yml
server:
  port: 8080

# application-prod.yml
server:
  port: 8081

2. 配置文件的切换

在application.yml文件中,通过spring.profile.active属性来设置当前激活的配置文件。

spring:
  profiles:
    active: dev

这样,运行的时候就会加载该配置文件中的配置信息。

3. 验证多环境配置

接下来我们就通过一个简单的例子来验证上面的配置是否有效。

@SpringBootTest
@RunWith(SpringRunner.class)
public class EnvironmentTest { 
    @Autowired
    private Environment env;

    @Test
    public void testEnvironment() { 
        System.out.println(env.getProperty("server.port"));
    }
}

运行这个测试类,如果当前激活的配置文件是dev,那么在控制台就会打印出8080,如果当前激活的配置文件是prod,那么在控制台就会打印出8081。

4.启动时切换环境

直接在启动命令里加入参数-Dspring.profiles.active=xxx

java -jar -Dspring.profiles.active=prod demo.jar

5.多个环境

另外spring.profiles.active可以同时写多个环境,只需要懂,号隔开。如:

spring:
  profiles:
    active: dev,mysql,redis

以上就是SpringBoot配置多环境的全部内容。希望本文能帮助到大家,如果大家有任何问题,欢迎留言交流。

正文到此结束
评论插件初始化中...
Loading...