Spring 教程

Spring 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/spring_framework-get-active-default-environment-profile-programmatically.html

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;

 

基于 Spring 框架或 Spring Boot 的项目中,需要根据当前环境的不同在代码上实现不同的逻辑,那如何获取当前环境信息。 ...
Elasticsearch 如何快速获取索引(index)中所有的字段信息? ...
java 获取当前时间 30 天前的信息,如日期时间、时间戳等等,如果使用是 java 1.8 及更高版本,可以使用 java.time 的 ...
currentTimeMillis()这是获取当前时间戳的一种简单方式,返回自1970年1月1日以来的毫秒数。ZonedDateTime和时 ...
laravel admin 如何获取当前登陆用户信息,用于记录操作者 id? ...