2017-02-20 13 views
1

에서 콩을 범위봄 요청이 내가 자원의 객체 풀이 오브젝트 풀

잘 작동합니다. 그러나 수동으로 PooledResource을 요청하고 finally 절을 잊지 않도록 강요 받으면 나를 긴장하게 만듭니다. 나는 다음과 같은 컨트롤러를 구현하고 싶습니다 :

@Path("test") 
public class TestController { 
    @Autowired 
    private PooledResource resource; 

    @GET 
    Response get() { 
     ... 
    } 

} 여기

PooledResource 대신 관리하는 풀의, 주입된다. 이 주입은 범위를 요청해야하며 요청을 완료 한 후에 리소스를 다시 풀에 제공해야합니다. 이것은 중요합니다. 그렇지 않으면 궁극적으로 자원이 부족하게됩니다.

스프링에서 가능합니까? 나는 FactoryBean으로 놀았지만, 이것은 빈을 돌려주는 것을지지하지 않는 것 같습니다.

답변

2

HandlerInterceptor을 구현하고이를 요청 범위 Bean에 주입하십시오. preHandle이 호출되면 올바른 값으로 Bean을 설정하십시오. afterCompletion이 호출되면 다시 정리하십시오.

다른 구성 요소에 좋은 PooledResource 주사를 얻으려면 콩 공장과 결합해야합니다.

Factory는 기본적으로 HandlerInterceptor에서 사용한 것과 동일한 객체를 삽입하고 PooledResource을 생성합니다 (또는 단지 반환합니다).

+0

의견을 보내 주셔서 감사합니다. 'HandlerInterceptor'는 JAX-RS/Jersey와 함께 작동합니까? –

+0

잘 모르겠다면, 더 낮은 레벨로 가서 요청/응답을 위해 설치할 수있는 필터를 찾아보십시오. – john16384