实际问题
我正在尝试Application
使用 Jersey 2.0 创建一个简单的 JAX-RS,如下所示:
@ApplicationPath("")
public class MyService extends ResourceConfig {
public MyService() {
packages(MyService.class.getPackage().getName());
register(new ApplicationBinder());
}
private static class ApplicationBinder extends AbstractBinder {
@Override
protected void configure() {
MyDependency dep = new MyDependency();
bind(dep).to(MyDependency.class);
// TODO properly shutdown/destroy/dispose "dep" somewhere
}
}
}
MyDependency
创建对象有点昂贵,并且它们有一个shutdown()
需要在销毁之前调用的方法。我应该在哪里以及如何使用 JAX-RS 执行此类清理任务?
更多背景资料(如有必要)
使用创建的对象的 JAX-RS 资源实现MyDependency
如下所示——如果这与问题有任何相关性:
@Path("getit")
@Singleton
public class MyResource {
private final MyDependency dependency;
@Inject
public MyResource(MyDependency dependency) {
this.dependency = dependency;
}
@GET
@Produces(MediaType.TEXT_HTML)
public String getIt() {
return this.dependency.getIt();
}
}