Spring 教程

Spring 笔记

spring 代码中获取 profile active 等当前环境信息

Spring 笔记 Spring 笔记


基于 spring 的框架中,经常会需要通过代码层面判断当前所处的环境信息(如 spring.profiles.active 等)来区分某种业务的不同处理方式,比如根据环境的不同,采用不同的资源加载等。

推荐方式

spring 非常贴心地在容器内实例化了一个带有环境信息的 Environment 实现类,开发者可以通过注入 bean 形式使用它,具体如下:

@Autowired
Environment env;

Environment 的全路径为 org.springframework.core.env.Environment,主要提供如下三个方法:

  • String[] getActiveProfiles()
  • String[] getDefaultProfiles()
  • boolean acceptsProfiles(Profiles profiles)

@Value 方式

也可以直接通过  @Value 注解获取配置的 spring.profiles.active 值,需要注意的是要考虑没有设置 spring.profiles.active 情况,给它一个默认值,否则在没有设置的情况下,会报 IllegalArgumentException 错误。

@Value("${spring.profiles.active:Unknown}")
private String activeProfile;