2009-06-08 4 views
10

스칼라에서 프로퍼티를 처리하는 가장 효율적인 방법이 무엇인지 알고 싶습니다. 나는 gazillion 속성 파일, xml 파일 및 Java의 구성 파일의 다른 유형을 가지고 지쳐서 "스칼라에서 더 효율적으로 그 중 일부를 처리하는"최상의 방법 "이 궁금합니까?스칼라에서 프로퍼티 처리하기

답변

2

편집 https://github.com/typesafehub/config

ORIGINAL (아마도 매우 유용하지) 형태 보증의 설정은 당신에게 구성을위한 간단하고 강력한 솔루션을 제공합니다 스칼라 코드 자체를 통해 구성 할 수 있습니다. "

스칼라의 런타임 링크는 런타임에 클래스를 스왑 할 수 있도록 허용하며 이러한 언어의 일반적인 철학은 구성보다 관습을 선호하는 경향이 있습니다. 당신이 gazillion 속성 파일을 다루고 싶지 않다면, 그냥 가지고 있지 않아도됩니다.

+0

나는 그 질문에 어떻게 대답하는지 보지 못합니다. 확장 할 수 있습니까? "런타임시 스왑"은 런타임 환경에 동적으로 응답하여 구성을 의미하는 것으로 보입니다. 그러나 DB 암호 나 관리자가 오류 전자 메일을받는 것과 같이 런타임에 알 수없는 많은 구성 매개 변수가 있습니다. 서비스 발견 메커니즘에 대해 이야기 할 수는 있지만, 이는 소규모 프로젝트에 과도한 부담이며 자체 구성 매개 변수를 갖게되므로 문제가 발생합니다. 언젠가는 프로그램에 입력을 제공해야합니다. 키/값 쌍으로 구성하면 속성 파일이 있습니다. – DrGary

+0

환경 별 설정 (실제로 외부화 된 유일한 설정이어야 함)의 경우 다음과 같이 Java와 같은 시스템 등록 정보를 얻을 수 있습니다. val databaseName = System.getProperty ("myapp.db.name"). 그런 다음 시작 스크립트에서이를 구성하고 다음과 같이 런타임에 제공하십시오. java -Dmyapp.db.name = DeeBee MainClass. 비밀번호는 파일에 포함시키지 말아야합니다.하지만 앱을 시작할 때 비밀번호를 물어볼 수도 있습니다. – George

+0

예를 들려 줄 수 있습니까? 이것은 매우 유용하게 들립니다. – Jus12

4

왜 gazillion 속성 파일이 있습니까?

저는 아직 스칼라에서 완벽하게 작동하는 아파치 commons Digester을 사용하고 있습니다. 이는 기본적으로 사용자 정의 XML 문서를 사용자 정의 구성 자 클래스에서 메소드 호출에 매핑하는 매우 쉬운 방법입니다. 일부 구성 데이터 (응용 프로그램 속성과 반대)를 구문 분석하려는 경우 매우 유용합니다.

응용 프로그램 속성의 경우 종속성 주입 프레임 워크 (예 : Spring) 또는 일반 일반 속성 파일을 사용할 수 있습니다. 비록 Scala가 이것의 위에 아무것도 제공하는지, 나는 또한 흥미를 가질 것이다.

2

깔끔한 작은 라이브러리처럼 보이는 Configgy을 확인하십시오. 중첩 및 변경 알림이 포함됩니다. 또한 로깅 라이브러리가 포함되어 있습니다.

불행히도, 내가 시도한 Mac 인스턴스에서 나에게 컴파일되지 않았습니다. 당신이 더 행운을 가지고 어떻게 생각하는지 알려주십시오 ...

업데이트 : 해결 된 Mac 컴파일 문제. 이 부분은 post을 참조하십시오. "스칼라 프로그래밍"에서 인용

:

"스칼라에서 - :

관련 문제