Play!를 사용하여 Java 클래스에서 application.conf 속성에 액세스 2.0
전역 범위에 개체를 추가하고 싶습니다. 개체를 구성하려면 파일 경로를 전달해야합니다. 소스의 파일 경로를 하드 코딩하고 싶지 않으므로 application.conf에서 해당 경로를 가져오고 싶습니다.
문제는 Java 클래스에서 이러한 속성에 액세스하는 방법을 모른다는 것입니다. 나는 이것을 시도했다 :
Configuration.root().getString("file.path")
그러나 NullPointerException으로 끝납니다 .
사용할 수있는 전역 구성 인스턴스가 있다고 가정하는 것이 잘못입니까? 감사.
시험 Play.application().configuration().getString("your.key")
주석 (nico_ekito)에서 언급 한 바와 같이, 사용하십시오 play.Play
하지 play.api.Play
. play.api.Play
스칼라 컨트롤러 용입니다 (Marcus biesior Biesioroff의 주석 참조).
또한 play는 내부적으로 https://github.com/typesafehub/config 를 사용 하므로 몇 가지 통찰력을 제공 할 수도 있습니다.
간단 해 보이지만 구성 파일에서 속성을 가져 오는 스칼라 방법 은 다음과 같습니다.
플레이 2.0 및 2.1 :
import play.api.Play.current
...
Play.application.configuration.getString("your.key")
2.2 이상 플레이
import play.api.Play.current
...
current.configuration.getString("your.key")
Typesafe 구성 사용
import com.typesafe.config.ConfigFactory
...
ConfigFactory.load().getString("your.key");
에서 Play 2.4 and +
이 액세스 구성에 의존성 주입을 사용하는 것이 좋습니다 :
import play.Configuration;
import javax.inject.Inject;
@Inject
private Configuration configuration;
...
String value = configuration.getString("your.key");
Play 2는 Typesafe 구성 라이브러리를 사용하기 때문에 다음과 같이 application.conf의 변수에 액세스했습니다.
ConfigFactory.load().getString("my.var");
플레이 자바에서 :
import play.Play;
...
Play.application().configuration().getString("key")
다음과 같이 사용하십시오 (Play 1.2.5에서 테스트 됨)
${play.configuration.getProperty('my.var')}
my.var는 application.conf 파일에 지정되어야합니다.
템플릿에서 액세스하기위한 참조 (play <2)
play.configuration['your.key']
사람들이 언급했듯이 Play.application.configuration
더 이상 존재하지 않습니다.
Play Scala 2.3.x에서에서 값을 읽으 conf/application.conf
려면 다음을 수행 할 수 있습니다.
import play.api.Play.current
...
current.configuration.getString("key")
Play 1.2.x에서
import play.Play;
...
String version = Play.configuration.getProperty("application.version.number", "1.1.1");
여기서 두 번째 매개 변수는 기본값입니다.
가져 오기
import com.typesafe.config.Config;
아래 줄을 쓰세요
private Config config;
this.config = ConfigProvider.config();
String value = this.config.getString("fieldFromConfigFile");
import play.Play; String myVal = Play.configuration.getProperty("your.key").toString();
나는 이것을 내 앱에서 사용하고 작동합니다.
play.Play를 가져 오는 것을 잊지 마십시오. 도움이되기를 바랍니다.
버전 2.5부터는 주입해야 할 play.Application 클래스를 사용하십시오. application.config().getString("your.property.here")
'IT Share you' 카테고리의 다른 글
파이썬에서 json 문자열을 객체로 역 직렬화 (0) | 2020.12.09 |
---|---|
StreamReader를 사용하여 외국 문자 읽기 C # 도움말 (0) | 2020.12.09 |
Pydoc으로 문서를 어떻게 만드나요? (0) | 2020.12.09 |
Automapper : ReverseMap () 및 ForMember ()를 사용한 양방향 매핑 (0) | 2020.12.09 |
Sublime Text에서 창을 제외한 모든 탭을 닫습니다. (0) | 2020.12.09 |