world with mvc hello example spring environment spring-boot thymeleaf

spring - with - Obtener entorno de aplicación de primavera en thymeleaf



thymeleaf with spring (1)

Mi aplicación Spring Boot se ejecuta con 3 configuraciones:

  • application.properties -> para entorno de desarrollo
  • application-test.properties -> para entorno de prueba
  • application-production.properties -> para entorno de producción

¿Cómo es posible obtener en el entorno Thymeleaf la aplicación se está ejecutando?

Necesito incluir el código de Google Analytics solo en el entorno de producción.


Puede hacer lo siguiente si solo tiene un perfil activo a la vez.

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

El código anterior se basa en el hecho de que el dialecto Spring de Thymeleaf le permite acceder a beans utilizando el símbolo @ . Y, por supuesto, el objeto Environment siempre está disponible como un bean Spring.

También tenga en cuenta que el Environment tiene el método getActiveProfiles() que devuelve una matriz de cadenas (por eso se usa [0] en mi respuesta), que podemos llamar usando el estándar de Spring EL.

Si hay más de un perfil activo al mismo tiempo, una solución más sólida sería utilizar el objeto de utilidad #arrays de Thymeleaf para verificar la presencia de la production cadena en los perfiles activos. El código en ese caso sería:

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