一 .概述
在我们之前的属性文件之中有一个问题,就是我们在开发和测试环境下需要不断的修改属性文件.
在springboot为了解决这个问题,提供了profile的方式解决这个问题.
二 .演示
我们首先创建三个配置文件,分别是application.properties,application-dev.properties,application-test.properties.
这三个配置配置文件分别代表总配置文件,开发环境和测试环境.
我们看看里面的内容:
application.properties
spring.profiles.active=dev
application-dev.properties
server.port=8888
application-test.properties.
server.port=9999
上面的配置信息表示开启dev的环境,现在我们启动项目看看端口号是多少.
我们发现是8888.然后,我们修改激活test环境.
我们发现现在端口就变成了9999.
三. 通过profile环境注入不同的bean ,使用@Profile
@Configuration public class ProfileConfig { @Bean("username") @Profile("dev") public String usernameDEV() { return "dev"; } @Bean("username") @Profile("test") public String usernameTEST() { return "test"; } }
上面的内容表示,我们在dev环境下注入dev,在test环境下注入test.
我们下面进行测试:
@SpringBootTest(classes = SpringbootRunnerClass.class) @RunWith(SpringRunner.class) public class ProfileTest { @Autowired @Qualifier("username") private String username; @Test public void test() { System.out.println(username); } }
我们通过修改激活状态,来激活不同的配置.我们发现现在我们通过profile属性来切换不同的配置了.
四 .最佳实践
通过上面的方式,我们了解到如何通过profile来完成环境的切换.
那么,我们一般会将公共的属性方式在总配置文件,将不同的配置放在其他的属性文件之中,这样,我们就能通过切换激活状态来完成项目整体的配置信息的切换.