1
範圍的bean我有資源的對象池:春 - 請求從對象池
public interface PooledResource {
...
}
@Component
public class ResourcePool {
public PooledResource take() { ... }
public void give(final PooledResource resource) { ... }
}
目前,我使用這個池按照我的JAX-RS端點:
@Path("test")
public class TestController {
@Autowired
private ResourcePool pool;
@GET
Response get() {
final PooledResource resource = pool.take();
try {
...
}
finally {
pool.give(resource);
}
}
}
這工作正常。然而,手動請求PooledResource
並被迫不忘記finally
條款讓我感到緊張。我想實現控制器如下:
@Path("test")
public class TestController {
@Autowired
private PooledResource resource;
@GET
Response get() {
...
}
}
這裏,PooledResource
注入,而不是管理池。這個注入應該是請求作用域,並且在請求完成後,資源必須返回給池。這很重要,否則我們最終會耗盡資源。
春天這可能嗎?我一直在玩FactoryBean
,但這似乎並不支持回報這個bean。
謝謝你的建議。 'HandlerInterceptor'是否與JAX-RS/Jersey結合使用? –
我對此不確定,如果不行,你可以降低級別並尋找可以安裝的請求/響應的某種過濾器。 – john16384