2012-11-20 2 views
2

내 웹 응용 프로그램은 속성 파일에서 읽음으로써 일부 동작을 수행합니다. 응용 프로그램이 JSP 인터페이스를 통해 실행되는 동안 등록 정보 파일을 수정할 수있는 관리 콘솔을 갖고 싶습니다. 현재 다음을 수행하여 등록 정보 파일을 읽을 수 있습니다.런타임시 웹 응용 프로그램에서 속성 파일을 수정하는 방법은 무엇입니까?

Properties props = new Properties(); 
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(FILE_PATH)); 

그런 다음 내보기로 전달하고 표시 할 수 있습니다.

수정하고 싶을 때, 파일에 대한 전체 경로를 전달하지 않으면 새로운 속성 값을 저장하는 것과 같은 방식으로 속성 파일을 찾을 수 없습니다 (출력 스트림 필요).

나는 ClassLoader가 제공 한 리소스를 수정하는 것은 나쁜 습관이라고 읽었습니다. 웹 애플리케이션의 외부에 특성 파일을 두는 경우 수정이 완료되는 동안 어떻게 잠길 수 있습니까? 이 작업을 수행하는 또 다른 방법이 있습니까 (속성은 .properties 파일에 있어야합니다).

Tomcat에서 Spring MVC를 사용하면 어떤 차이가 있습니다.

답변

1

필자는 현재 속성 파일을 그대로있는 위치에 보관하고 기본 '로드'원본으로 사용합니다. 모든 재정의는 웹 앱 외부의 위치로 이동합니다 (위치를 구성 가능하도록 설정). 시동 로직은 항상 다음과 같습니다 속성이이 재정의로 저장됩니다 관리자 콘솔을 통해 변경 될 때마다

  • 로드 기본 소스
  • 오버레이, 아주 분명

을 무시합니다. 이 설정의 좋은 점은 응용 프로그램 아카이브 문제를 해결하는 것 외에도 사용자에게 속성 값을 '기본값'으로 복원하는 옵션을 제공 할 수 있다는 것입니다.

관련 문제