2012-03-15 2 views
3

내 응용 프로그램 설정이있는 자바 싱글 톤 클래스가 있습니다.속성 파일을로드하고이를 자바 싱글 톤 (enum)으로 전달하는 방법

What is an efficient way to implement a singleton pattern in Java? 그래서 내가 가진 :

public enum MySettings { 

    INSTANCE; 

    // bunch of private vars 


    private MySettings { 
    // load a json file and set my properties 
    JsonParser parser = jf.createJsonParser(new File("HARD_CODED_PATH_HERE")); 
    } 

    // public getters/setters here 


} 

그래서 문제가 내가 현재 가지고있는 하드 코딩 경로입니다

나는이 방법을 사용했다.

Properties prop = new Properties(); 
propertiesload(getServletContext().....); 

인가 :

내가 내/WEB-INF/폴더에 settings.properties 파일을 생성, 이제 문제는 내가 등록 정보 파일을로드하는 방법을 알고있는 유일한 방법, 그것은 서블릿 컨텍스트가 필요 이 다른 방법으로 이것을로드 할 수 있습니까?

이 속성 파일은 속성 파일의 정적 표현입니까? 즉, 매우 빠르고 효과적입니까?

+0

@AndyRay는하지만 60 % ... 내가 비판 싶어요 – Blankman

+0

을 수락하지만 내 40 %의 O_O입니다 . –

+0

@Tom 총 6 가지 질문을 던졌을 때 누구도 당신을 비난하지 않을 것입니다. –

답변

1

당신은 WEB-INF 폴더가 아닌 src 폴더 바로 아래에 속성을 넣으려고 할 수 있습니까?

WORKDIR 
+ SRC 
| + PACKAGES 
| | + org.personal.foo 
| - system.properties 
| + WEB-INF 
+0

(a) 속성 파일이 패키지 된 WAR 파일로 끝나는 곳을 설명하고 (b) 코드에서로드 할 수 있습니다. –

+0

@TomAnderson 파일을 리소스로 포함하지 않으려면 설정을 변경하기 위해 다시 컴파일해야합니다 (바람둥이를 다시 시작하는 것). 따라서/web-inf 폴더에 일반 텍스트로 표시됩니다. – Blankman

+1

@Blankman : WAR가 폭발했다면, 그대로 재 컴파일 할 필요가 없습니다. 파일을 변경하고 다시 시작할 수 있습니다. –