[英]PerRequestTypeInjectableProvider equivalent in Jersey2
Jersey2 中 PerRequestTypeInjectableProvider 的等价物是什么?
我尝试使用 AbstractBinder 但它似乎不起作用。 我尝试注入的 Seesion 总是 null。
我试图替换 jersey-1 旧代码
public class UserSessionProvider extends PerRequestTypeInjectableProvider<Context, Session> {
@Context HttpServletRequest request;
public UserSessionProvider() {
super(Session.class);
}
@Override
public Injectable<Session> getInjectable(ComponentContext cc, Context context) {
return new Injectable<Session>() {
@Override
public Session getValue() {
Session session = SessionUtils.createSession(request);
request.setAttribute(WebSessionConfig.s.servlet_attribute_name, session);
return session;
}
};
}
}
使用 jersey-2 新代码,将 PerRequestTypeInjectableProvider 替换为 AbstractBinder:
public class UserSessionProvider extends AbstractBinder {
private static final Logger logger = Logger.getLogger(UserSessionProvider.class);
@Context HttpServletRequest request;
@Override
protected void configure() {
bind(SessionResolver.class).to(Session.class);
}
public class SessionResolver implements InjectionResolver<Session> {
@Override
public Object resolve(Injectee injectee, ServiceHandle<?> root) {
Session session = SessionUtils.createSession(request);
request.setAttribute(WebSessionConfig.s.servlet_attribute_name, session);
return session;
}
@Override
public boolean isConstructorParameterIndicator() {
return true;
}
@Override
public boolean isMethodParameterIndicator() {
return true;
}
}
}
问题是 package 没有注册。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.