注解@profile的使用

目录

  • @profile介绍
  • 配置
  • 演示

@profile介绍

@profile 通常作用在controller类上,当它标记的环境有效时,该controller类才生效,例如:@Profile(“dev”),当dev环境被激活时,@Profile(“dev”)所注解的controller类才生效。

配置

1、准备了三个环境,分别为:dev,test和pro,对应的配置也有三个,如下图:
注解@profile的使用_第1张图片
2、在pom.xml也配置了三个环境

<profiles>
        <profile>
            <id>devid>
            
            <activation>
                <activeByDefault>trueactiveByDefault>
            activation>
            <properties>
                <profiles.active>devprofiles.active>
            properties>
        profile>
        <profile>
            <id>testid>
            <properties>
                <profiles.active>testprofiles.active>
            properties>
        profile>
        <profile>
            <id>proid>
            <properties>
                <profiles.active>proprofiles.active>
            properties>
        profile>
    profiles>

注解@profile的使用_第2张图片
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生效
注解@profile的使用_第3张图片
TestDevController 生效
注解@profile的使用_第4张图片
TestProController 不生效
注解@profile的使用_第5张图片
TestController 不生效
注解@profile的使用_第6张图片
2、当启用test环境时,其它两个不生效
注解@profile的使用_第7张图片
TestController 生效
注解@profile的使用_第8张图片
TestDevController 不生效
注解@profile的使用_第9张图片

TestProController 不生效
注解@profile的使用_第10张图片
3、当启用pro环境时,就只有TestProController 生效
注解@profile的使用_第11张图片
TestProController 生效
注解@profile的使用_第12张图片
TestDevController 不生效
注解@profile的使用_第13张图片
TestController 不生效
注解@profile的使用_第14张图片

你可能感兴趣的:(SpringCloud,maven,JAVA,spring,cloud)