一尘不染

在thymeleaf中获得Spring应用程序环境

spring-boot

我的Spring Boot应用程序以3种配置运行:

  • application.properties->用于开发环境
  • application-test.properties->用于测试环境
  • application-production.properties->用于生产环境

如何在thymeleaf环境中运行应用程序?

我只需要在生产环境中包含Google Analytics(分析)代码。


阅读 327

收藏
2020-05-30

共1个答案

一尘不染

如果一次只有一个配置文件处于活动状态,则可以执行以下操作。

<div th:if="${@environment.getActiveProfiles()[0] == 'production'}">
  This is the production profile - do whatever you want in here
</div>

上面的代码基于Thymeleaf的Spring方言允许您使用该@符号访问bean的事实。当然,该Environment对象始终可以作为Spring
bean使用。

还要注意,Environment该方法getActiveProfiles()具有返回字符串数组的方法(这就是为什么[0]在我的答案中使用的原因),我们可以使用标准Spring
EL进行调用。

如果一次有多个配置文件处于活动状态,则一种更可靠的解决方案是使用Thymeleaf的#arrays实用程序对象,以检查production活动配置文件中是否存在字符串。在这种情况下,代码为:

<div th:if="${#arrays.contains(@environment.getActiveProfiles(),'production')}">
     This is the production profile
</div>
2020-05-30