¡Anteriormente en Play! v1 fue realmente fácil definir las variables de configuración application.conf
y luego acceder a ellas así:
play.configuration("db.driver")
Sin embargo, ahora no puedo encontrar nada en la documentación para usos similares en v2 o una alternativa adecuada. ¿Cuál es el método para hacerlo?
playframework-2.0
verduras
fuente
fuente
Respuestas:
A partir de Play 2.5,
play.api.Play.current
está obsoleto. Debe usar la inyección de dependencia para inyectarEnvironment
oConfiguration
y usar eso para leer el valor de configuración:Consulte la documentación de Play para obtener información más detallada.
fuente
El equivalente de Play 2.0 Scala a esto sería:
También necesitarás
import play.api.Play
Los documentos completos para esto están aquí .
fuente
play.api.Play.maybeApplication.map(_.configuration.getString("db.driver"))
Se aplica a Play 2.0: en Java Controller puede usar lo siguiente:
String optionValue = Play.application().configuration().getString("db.driver");
Para obtener la variable a la vista, use esto:
@play.Play.application().configuration().getString("db.driver")
fuente
En Play 2.3.2 para Java puedes usar la
com.typesafe.config.ConfigFactory
opción:API de rápido movimiento!
fuente
Otro método probado en Play 2.3 [.8] / Java para acceder a los valores de application.conf:
Para verificar la versión de Play, examine el proyecto de archivo / complementos. La línea que contiene "sbt-plugin" debe tener una especificación de versión como "2.3.8".
Si, por ejemplo, application.conf contiene las líneas
uno podría consultar esos valores de un archivo / clase java como
Los métodos get ... devuelven null si no se encuentra el valor, también hay métodos get ... que toman un valor predeterminado como argumento.
Para obtener más información, consulte https://www.playframework.com/documentation/2.3.x/api/java/index.html
e inspeccionar el juego de la clase.
fuente
En Play Scala 2.3.xy 2.4.x, para leer un valor
conf/application.conf
, puede hacer lo siguiente:fuente
En Play 2.0.1 Java, debe hacer esto:
fuente
En Play 2.1, Scala Primero tienes que
import play.api.Play Play.current.configuration.getString("varibale name")
fuente
En Java con play> 2.5.X puede leer los valores de configuración a través del ayudante ConfigFactory:
o
La configuración del objeto convertirá el parámetro en el tipo correcto. Expone los métodos para manejar cualquier tipo de Java (getDouble, getLong, etc., etc.)
Documento: https://www.playframework.com/documentation/2.5.0/api/java/play/Configuration.html
fuente
En caso de que esté utilizando Play Scala , encontré este enfoque el más apropiado después de buscar algunas de las mejores prácticas. Para hacerlo, inyecté la configuración y luego accedí a mi clave de configuración de esta manera:
De esta manera, no obtiene la opción, sino la cadena. En caso de que no esté disponible, lanza una excepción:
El objetivo principal era evitar la
get
solución pura que @peoplemerge ya mencionó al lanzar una excepción específica si None.fuente
Como pequeña contribución / mejora a todas las
@Inject
respuestas aquí, no necesita llamar a laconfig.underlying
implementación. Puedes usar directamenteconfig.getString
ejemplo:
fuente
Hay varias formas de acceder a las configuraciones en Play usando Scala
Lo siguiente funciona en Play 2.7.x
Opción 1: con DI
Opción 2: sin DI
fuente
@Inject()
en una clase de prueba?GuiceApplicationBuilder
le da la oportunidad de anular los enlaces predeterminados. Aparte de eso, se crearán instancias de sus componentes de Play existentes como se esperaba.Como han mencionado otros, debes importar play.api.Play.current. Entonces si corres:
En 2.3.x / scala 10 obtendrás
Si es obligatorio, funcionará:
¿Alguien sugiere una mejor respuesta?
fuente
// nuevo enfoque post 2.5.x
}
fuente: https://www.webkj.com/play-framework/play-scala-2.5-reading-config-using-di
fuente