@profile注解和spring.profiles.active参数搭配实现不同环境下配置参数的切换

前言:

SpringBoot使用@Profile注解可以实现不同环境下配置参数的切换,任何@Component(包括其中继承了@Component的注解:@Service、@Controller、@Repository等… )或@Configuration注解的类都可以使用@Profile注解,搭配spring.profiles.active参数实现不同环境配置参数的切换。

  • 查看官方文档: 24.4 Profile-specific Properties.
    Profile-specific Properties
    官方文档描述:
    除application.properties文件外,还可以使用以下命名约定来定义特定于配置文件的属性:application-{profile}.properties。在 Environment具有一组默认的配置文件(默认[default]),如果没有显式激活配置文件,则application-default.properties加载属性。
    如果指定了多个配置文件,则应用最后获胜策略。例如,spring.profiles.active属性指定的配置文件将在通过SpringApplicationAPI 配置的配置文件之后添加,因此优先。

  • 查看官方文档: 25. Profiles.
    25. Profiles
    官方文档描述:
    任何@Component或@Configuration 可以使用@Profile以限制加载指定配置。
    @Profile可接受多个参数。

应用场景举例:

创建多个环境配置文件(dev、test、pord分别对应开发、测试、生产环境)
在这里插入图片描述

  • 使用swagger生成API通常只能暴露测试环境和开发环境的接口。
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@Profile({"dev", "test"}) // 仅在开发、测试环境启用swagger
@EnableSwagger2
public class SwaggerConfig {
	// 配置信息
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值