目录
- @profile介绍
- 配置
- 演示
@profile介绍
@profile 通常作用在controller类上,当它标记的环境有效时,该controller类才生效,例如:@Profile(“dev”),当dev环境被激活时,@Profile(“dev”)所注解的controller类才生效。
配置
1、准备了三个环境,分别为:dev,test和pro,对应的配置也有三个,如下图:
2、在pom.xml也配置了三个环境
<profiles>
<profile>
<id>dev</id>
<!--默认激活当前配置-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profiles.active>dev</profiles.active>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<profiles.active>pro</profiles.active>
</properties>
</profile>
</profiles>
3、分别准备了三个controller类
TestDevController.java
@Profile("dev")
@RestController
@RequestMapping("dev")
public class TestDevController
{
@GetMapping("/user/info")
public Object info()
{
return "{\"username\":\"dev\",\"password\":\"dev123\"}";
}
}
TestController.java
@Profile("test")
@RestController
@RequestMapping("test")
public class TestController
{
@GetMapping("/user/info")
public Object info()
{
return "{\"username\":\"test\",\"password\":\"test123\"}";
}
}
TestProController.java
@Profile("pro")
@RestController
@RequestMapping("pro")
public class TestProController
{
@GetMapping("/user/info")
public Object info()
{
return "{\"username\":\"pro\",\"password\":\"pro123\"}";
}
}
演示
1、启用dev环境时,只有TestDevController生效
TestDevController 生效
TestProController 不生效
TestController 不生效
2、当启用test环境时,其它两个不生效
TestController 生效
TestDevController 不生效
TestProController 不生效
3、当启用pro环境时,就只有TestProController 生效
TestProController 生效
TestDevController 不生效
TestController 不生效