2012-05-25 2 views
0

서버가 시작될 때 등록 정보 (예 : 일부 리스너 또는 이와 비슷한 내용)를 로드하는 방법을 아는 사람이 있습니까?서버 시작시로드 된 등록 정보를 표시하는 방법

이 내가 무엇을 가지고 : 파일이 구성 매개 변수project.properties라는

1. 와 스프링에 의해로드

2 ... : 나는 선언 된 속성을 읽고을 기록 할 수있는 적절한 장소가 될 수도있을 것 같군요

<context:property-placeholder location="WEB-INF/project.properties" /> 

3 한 청취자입니다.

public class StartListener implements ServletContextListener { 

    Logger logger = LoggerFactory.getLogger(this.getClass().getName()); 

    public void contextInitialized(ServletContextEvent sce) { 
     //Here read the properties and do the logging of it 
    } 
//... 
} 

도움이 될 것입니다.

답변

1

내게 따르면 당신이해야 할 일은 서버가 시작될 때 당신이 몇 가지 속성을 기록하기를 원할 때입니다.

먼저이 작업을 수행하려면 dispatcher-servlet.xml 파일에 다음 행을 추가해야합니다.

<context:annotation-config /> 

한 다음 속성을로드하고이를 기록하고자하는 어떤 방법 위에 @PostConstruct 주석을 사용합니다. 응용 프로그램의 모든 컨트롤러 또는 서비스 클래스에서이 작업을 수행 할 수 있습니다.

이 봄에이 주석은 자동으로이 주석을 감지하고 응용 프로그램로드가 완료 될 때마다이 함수를 호출하고 거기에 설명 된대로 수행합니다.

희망이 도움이됩니다.

건배.

0

감사합니다,하지만 마지막으로, 나는 어떻게 하겠어 그 청취자의 :

공용 클래스 StartListener가 {

Logger logger = LoggerFactory.getLogger(this.getClass().getName()); 

public void contextInitialized(ServletContextEvent sce) { 
    ServletContext sc = sce.getServletContext(); 

    Properties props = new Properties(); 
    try { 
     props.load(sc.getResourceAsStream("/WEB-INF/project.properties")); 
     logger.info(props.entrySet().toString()); 
    } catch (Exception e) { 
     logger.error("......"); 
    } 
} 

//... 

}

ServletContextListener를 구현
관련 문제