目前我正在开发基于运动衫的RESTful应用程序,并希望在我的资源中使用DPI.(注意:jersey的版本是2.23.1,servlet容器是tomcat 8.5.3.)
因此,我遵循了球衣文档中的第23章自定义注入和生命周期管理教程,并创建了一个资源,一个工厂,并将工厂绑定到这样的类:
资源:
@Path("/{project}/catalogs")
public class ProjectsResource {
@Inject
Project project;
...
}
Run Code Online (Sandbox Code Playgroud)
厂:
public class ProjectFactory extends Factory<Project> {
private final Cache cache = cache.getInstance();
@PathParam("project")
private String project;
private HttpServletRequest request;
@Inject
public ProjectFactory(HttpServletRequest request) {
this.request = request;
}
@Override
public Project provide() {
return cache.get(project, Project.class);
}
@Override
public void dispose(Project instance) {}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个功能,它注册一个AbstractBinder,它将我的ProjectFactory绑定到我的Project类.
@Provider
public class ProjectFeature implements Feature {
@Override
public boolean configure(FeatureContext context) {
context.register(new AbstractBinder() {
@Override
protected …Run Code Online (Sandbox Code Playgroud)