2014-03-06 1 views
0

Java에서 매우 간단한 REST 웹 서비스를 구현하려고합니다. 이것은 내 일의 기본 노선이 아니므로 모든 것이 새로운 것입니다.Java REST 서비스의 수명 및 초기화

저는 Java 및 JAX-RS 구현을 연구 중입니다. 그것들은 그렇게 어려운 것처럼 보이지는 않지만 서비스의 수명과 그것이 웹 서버에 의해 어떻게 생성되는지를 이해할 수 없었습니다.

내 서비스가 요청을 처리 할 수 ​​있도록 파일이나 리소스에서 많은 수의 설정 데이터를로드하는 것과 같이 값 비싼 초기화를해야 할 수도 있습니다. 내가 요청을 처리해야 할 때마다 그렇게해야한다는 것을 나는 모른다.

제 궁금한 점은, 내 서비스의 수명은 얼마입니까? 요청에 응답하기 전에 파일에서 웹 서비스 매개 변수를로드 할 수 있습니까? 로드해야하는 매개 변수는 변경되지 않으며 모든 요청에 ​​대해 동일해야합니다 (따라서 상태 비 저장).하지만 어딘가에서 해당 데이터를로드 할 수 있어야하고 강제로 수행 할 것인가 걱정됩니다. 그것은 각 요청에 대해. 그래서, 내 웹 서비스가 "라이브"또는 캐싱되어 초기화를 한 번만 수행하거나 스레드 당 한 번만 수행하면되지만 요청마다 한 번만 수행 할 필요는 없습니까?

편집 : 아직 어떤 JAX-RS 구현을 사용할지 또는 어떤 서버를 사용할지 결정하지 않았습니다. 나는 단지 그것을 할 수 있다는 사실에 관심이 있으며 어떤 구현을 선택 하느냐가 중요하다.

답변

3

JAX-RS의 구현 인 Jersey를 사용하여 예제를 제공하십시오. 루트 자원 클래스의 기본 수명주기는 각 요청이 지정된 here으로 자체 인스턴스를 작성합니다. 따라서 서비스에 초기 설정이 있고 모든 요청에 ​​대해 동일한 경우, 정적 클래스가 클래스별로 작성되기 때문에 정적 클래스를 사용하여 정적 클래스를 사용하여이를 초기화 할 수 있습니다. 다음과 같은 내용 :

private static MyParam params; 

static { 
    params = new MyParam("/path/to/file/setup.conf"); 
}