programing

Java 구성 프레임워크

telecom 2023. 10. 12. 21:49
반응형

Java 구성 프레임워크

Java 라이브러리에서 하드코딩된 값을 모두 제거하는 중인데 런타임 구성을 처리하는 데 가장 적합한 프레임워크(0 또는 0에 가까운 구성)가 무엇인지 궁금합니다.XML 기반의 구성 파일을 선호하지만 필수는 아닙니다.

틀에 대한 실무 경험이 있는 경우에만 회신 부탁드립니다.예를 찾는게 아니라, 경험을...

Apache Commons Configuration(아파치 커먼즈 구성)은 잘 작동합니다.백엔드에 속성, XML, JNDI 등 다양한 형식으로 구성을 저장할 수 있도록 지원합니다.사용 및 확장이 용이합니다.유연성을 최대한 활용하려면 공장에서 구성을 얻고 그 후에 구성 인터페이스만 사용하면 됩니다.

Commons Configuration의 두 가지 특징은 일반적인 유형(int, float, String array)으로의 자동 변환을 지원하고 속성 대체를 지원한다는 것입니다.

server.host=myHost
server.url=http://${server.host}/somePath

하드코딩된 값이 단순한 키-값 쌍일 경우 java.util을 살펴보아야 합니다.속성.xml보다 훨씬 단순하고 사용하기 쉬우며 구현하기가 엄청나게 사소합니다.

Java를 사용하는 경우 디스크에서 저장하거나 검색하는 데이터가 키 값 쌍으로 모델링되어 있다면 이보다 더 좋은 솔루션은 없습니다.

저는 더 큰 프로젝트에서 작은 패키지의 간단한 구성을 위해 속성 파일을 사용했고, 전체 프로젝트에 대한 보다 글로벌한 구성으로 사용했으며, 문제가 발생한 적은 없습니다.

물론 이는 제3자 라이브러리를 활용할 필요가 없다는 큰 이점을 가지고 있습니다.

다음은 다양한 옵션입니다.

다양한 사용자의 피드백을 위해 JFig Jconfig를 사용한 Commons Configuration With JConfig 및 Configuring your Applications using JFig를 읽는 것이 좋습니다.

개인적으로 jConfig를 사용해 본 적이 있는데 좋은 경험이었습니다.

커먼즈 구성

이거 쓰고 있어요.속성 파일만으로도 훨씬 쉽게 처리할 수 있지만, 보다 복잡한 데이터 공용 구성을 표현해야 하는 경우에는 속성 파일을 읽을 수도 있습니다.

복잡한 일을 하지 않는다면 속성 파일을 계속 사용할 겁니다.

고급(및 안전 입력) 작업을 수행하려면 이 내용을 확인해 보는 것이 좋습니다. http://www.ibm.com/developerworks/java/library/j-configint/index.html

Intelligent Parameter Utilization Tool(InPUT, 페이지)을 사용하면 파라미터로 거의 모든(하드 코딩된) 결정을 XML 기반 구성 파일로 외부화할 수 있습니다.이는 일반성과 관련하여 기존 구성 도구에서 인식된 결함에 대한 대응으로 2012년 초에 시작되었습니다.

InPUT는 복잡한 설명자의 정의와 클래스 매핑 또는 사전 정의된 값 범위에 기반한 무작위 구성 산란 및 검증과 같은 기능을 통해 대부분의 사용 사례에서 요구하는 것보다 더 강력할 수 있습니다(테스트 및 연구용).h, 예를 들어 몬테카를로 시뮬레이션).하위 파라미터, 파라미터 값에 대한 상대적 제한(숫자 파라미터 a > 파라미터 b) 등으로 파라미터를 정의할 수 있습니다.

아직 베타 버전이지만 안정적이기 때문에 연구용, 실험의 구성문서화용, 교육용으로 사용합니다.다른 언어(파이프의 C++ 어댑터)에서 사용할 수 있게 되면, 다른 연구자/실무자는 동일한 알고리즘의 구현을 실행하는 디스크립터를 (코드 매핑 개념을 사용하여) C++로 재사용할 수 있습니다.이를 통해 실험 결과를 검증하고 프로그램을 보다 쉽게 마이그레이션할있습니다.설명서는 아직 작업 중이지만 페이지에 몇 가지 예시가 있습니다.InPUT는 오픈 소스 소프트웨어입니다.

For those interested, the Conceptual Research Paper.

제가 쓰는 편입니다.java.util.Properties(또는 다른 언어와 프레임워크의 유사한 클래스) 대부분의 경우 애플리케이션별 구성 클래스로 랩핑되지만, 저는 이에 대한 대안이나 변형에 매우 관심이 있습니다.특히 그래픽 구성 대화상자나 구성 데이터에 대한 여러 보기가 포함된 경우 일이 다소 까다로워질 수 있습니다.

Unfortunately I don't have any experience with specific libraries for Java (except with the ones I have written myself), but any pointers would be appreciated.

Update

OK. That wasn't entirely true, three is the Spring Java Configuration Project.

I wrote about this a couple of weeks ago and came to the conclusion that XML is one of the most widely used notations.

Is it the best? I don't think so, I really like JSON, but the tooling is still not up to XML so I guess we have to wait and see.

You can try YamlBeans. This way you write whatever classes you want to hold your config data, then you can automatically write and read them to and from YAML.

YAML is a human readable data format. It has more expressive power than java.util.Properties. You can have lists, maps, anchors, typed data, etc.

Please take a look at this URL: http://issues.apache.org/jira/browse/CONFIGURATION-394

The Configuration framework which we're looking for it is something on top of Apache Commons Configuration and must support Concurrency Issues, JMX issues and most of stores(e.g .properties file, .xml files or PreferencesAPI).

What weblogic team provides on 'Administration Console' is intersting which through it you can have transactional(atomic) updates on configurations so that are registered listeners be notified.

The Apache guys insist that this project is out of scopes of Commons Configuration, maybe!

I've attached a simple configuration framework, take look please.

I just posted a brief bit of code about using Spring's ClassPathResource as an alternative to IoC. ClassPathResource permits you to place property files anywhere on the classpath (e.g., all in one place, or as peers to the code they configure. My example just uses java.util.Properties, so you can use the plaintext "name=value" style or its XML format.

속성 파일은 매우 간단합니다. 좀 더 기능적인 것이 필요한 경우 일부 구성 파일을 Java 클래스로 포맷할 수 있습니다.이러한 파일은 다른 패키지/모듈에 저장할 수 있으며 실행 시 BeanShell과 같은 라이브러리를 사용하여 미리 컴파일하거나 로드할 수 있습니다.

참고: 가장 간단한 경우(사전 컴파일)에는 추가 라이브러리가 필요 없습니다.

java.util을 사용하는 것에 대한 제안입니다.Properties - jdk 1.5부터 시작하는 Preferences API(java.util.prefs)가 Properties API를 사용하는 대신 선호되는 대안으로 보입니다.

이유: 확장성 향상, 백엔드 중립성 등.

새로 발표된 tools4j-config는 런타임에 구성을 쉽게 처리할 수 있도록 하는 것을 임무로 합니다.

언급URL : https://stackoverflow.com/questions/25765/java-configuration-framework

반응형