有没有办法实现这里描述的相同结果而不取决于球衣,而是纯粹的 jax-rs?我想创建一个像 Jersey 这样的自定义注入提供程序,这样我就可以注入 MyClass 从 HttpServletRequest 中提取自定义数据@Injectprotected MyClass myClass;我也发现这个讨论很有用,它的工作原理相同,java.util.function.Supplier但在这段代码中仍然需要 Jersey:bindFactory(MyFactoryOrSupplier.class).to(MyClass.class).in(RequestScoped.class);编辑:CDI 也是一个不错的选择,但纯 jax-rs 更可取
1 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
我使用 CDI 找到了这个解决方案:
@ApplicationScoped
public class MyFactoryOrSupplier {
@Produces
@RequestScoped
public IMyClass getMyClass(@Context HttpServletRequest request) {
return (IMyClass) request.getAttribute("MyInjectedClass");
}
}
然后在我的 servlet 中:
@Inject
protected IMyClass myClass;
bean.xml
bean-discovery-mode="annotated"
实际上,MyClass implements IMyClass因为我不知道MyClass有一个没有参数的公共构造函数,这做到了。
添加回答
举报
0/150
提交
取消