java - 如果条件基于 Activeprofile

标签 java spring-boot

出于测试目的,我正在尝试在内存中的 H2 中运行查询。由于 H2 限制,某些语法不起作用。我希望在 Spring Boot 中更改基于 @Activeprofile 的语法。我的代码看起来像这样:

if (@Activeprofile("Test")) {
    query = "something for test"
} else {
    query = "something for prod/stage" 
}

这可能吗?任何帮助表示赞赏。

最佳答案

您必须将Environment Bean 注入(inject)代码中。

像这样:

@Autowired
private Environment environment;

然后您可以使用 .getActiveProfiles() 方法。

if (Arrays.asList(environment.getActiveProfiles()).contains("...") {
    ...
}

有关此内容的更多信息,请参阅 here.

关于java - 如果条件基于 Activeprofile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55376620/

相关文章:

java - java中没有@Id注释的序列生成器与Postgres中的hibernate在一定范围内

java - 如何使用两个唯一约束配置 Eclipselink ORM 对象

java - 如果 JAXWS 出现异常,如何发送自定义响应消息而不是故障消息?

spring-boot - Apache Camel 处理 http 请求时出现异常

java - Spring Boot 将 HTTP 重定向到 HTTPS

java - 由于缺少 bean,Web 服务器无法启动

java - wp :featuredmedia of type org. json.JSONArray 无法转换为 JSONObject

java - 什么时候需要初始化字符串?

Java 按最高值排序 HashMap,然后按最低键排序

rest - Spring Boot REST 服务 : JSON Deserialization Not Working