4

나는 응용 프로그램을 구성했다 XML 파일에서. 문제는 어디에 배치해야 하는가입니다.어디서 구성해야합니까?</p> <ul> <li>DAO</li> <li>도메인</li> <li>주요</li> <li>서비스</li> <li>유틸</li> </ul> <p>을 나는 응용 프로그램 구성을 읽는 클래스를했습니다 다음과 같이

리플렉스에서는 유틸리티에 배치했지만 유틸리티 클래스에는 정적 메서드가 있고 stateless이지만이 클래스는 Apache Commons XMLConfiguration 인스턴스를 사용합니다. 이 인스턴스가이 클래스의 메서드 범위로 제한되도록 메서드를 변경해야합니까?

+0

XML 또는 클래스의 위치에 대해 묻는 유틸리티입니다. 로드 및 xml을 노출? – cherouvim

+0

Cherouvim, XML을로드하는 클래스가 애플리케이션이 분할되는 방식에 따라 이동해야하는 곳이 궁금합니다. 세부 사항이지만 지금은 모범 사례를 채택하고 나쁜 습관을 피하는 것이 좋습니다. –

답변

3

나는 패키지가 있다고 가정하므로 메인 패키지로 가고 싶습니다.

  • DAO
  • 도메인
  • 주요가 포함 된 응용 프로그램 및 구성 리더
    • 설정
    • 로그
  • 서비스
  • utils

왜? 애플리케이션의 구성은 그것이 XML이든 아니든간에, 그리고 Spring과 같은 애플리케이션 프레임 워크를 기반으로하는지 여부는 주요 기능 중 일부입니다. 응용 프로그램을 부팅하는 것이 응용 프로그램의 주된 책임입니다. 모든 비즈니스 기능, 제공되는 모든 반짝이는 기능은 도메인 및 서비스 계층에서 구현됩니다.

맞아요, utils는 모두 정적이거나 유사한 도구에 관한 것입니다. 응용 프로그램의 구성이 매우 중요하므로 유틸리티로 선언하지는 않습니다. 유틸리티는 동일한 유형의 다른 유틸리티로 쉽게 대체 될 수 있습니다 (예 : StringUtilStringUtilsIOUtils 등). 모두 비슷한 기능을 가진 유틸리티입니다.

1

봄을 살펴 보시기 바랍니다. 처음에는 너에게 잔인한 것처럼 보일지 모르지만, 너는 그것을 좋아할 것이다.

+0

스프링은 이미 Service 클래스와 DAO 클래스의 인스턴스를 삽입하는 데 사용됩니다. 구성에 어떻게 사용될 수 있습니까? –

+0

속성 파일을 사용하고 포함하십시오. 그런 다음 모든 등록 정보를 변수로 사용하여 콩에 주입 할 수 있습니다. 나는 내 자신 앞에서이 일을하지는 않았지만, 거의 모든 Spring 기반의 프레임 워크 또는 애플리케이션은 그렇게하지 않았다. – Daniel

2

이것은 사용하는 빌드 시스템 및 응용 프로그램 유형에 따라 다릅니다. Maven은 당신이 있기 때문에, 프로젝트 구조에 따르면 내가 폴더 설정 또는 자원을 소개하는 제안 WEB-INF 또는 WEB-INF/config에

에 배치 할 수 WAR 파일에서 src/main/resources

에 configfiles을 배치 제안 거의 모든 사람들이 거기에서 그들을 기대할 것입니다.

2

스프링으로 작업하는 경우 Configuration Placeholders을 살펴보십시오. 구성 등록 정보에 대한 간단한 Java 등록 정보 파일을 사용하여 클래스 경로 (또는 다른 위치)에 배치 할 수 있습니다. 당신은 구성 값 (XML, 데이터베이스 등)을 유지하는 다른 형태를 사용하기 위해 자신 만의 구현을 만들 수 있습니다.

2

구성은 크로스 커팅 측면이므로 이러한 계층 중 하나에만 매핑되지 않습니다. 구성 파일 (XML 또는 특성)을 클래스 경로에 놓고 Spring을 통해이를 사용하여 bean을 구성하십시오.

속성 기반 구성 데이터의 경우 PropertyPlaceholderConfigurer이 좋은 해결책입니다.