jersey - 是否可以将 dagger2 与 jersey 一起使用,就像与 guice 一样使用?

标签 jersey dagger-2

是否可以像使用 guice 一样将 dagger2 与 jersey 一起使用?

是否有 dagger2 servlet 或 dagger2 jersey 项目?

最佳答案

所以,简短的回答是否定的,没有一个很好的方法可以在您的应用程序中获得 Jersey 的所有功能的同时实现这一点。

但是,有一些方法可以部分地做到这一点。您可以简单地在应用程序 servlet 中注册您的资源(请参阅此处的示例 https://github.com/cogman/gluews/blob/master/src/main/java/com/cogman/glue/GlueApplication.java)

通过这种方法,您会失去 Jersey 在字段级别注入(inject)的魔法,例如 @Context。您仍然可以通过将它们添加到需要它们的方法签名中来获取这些内容,只是无法在字段级别轻松地做到这一点。

这种方法的另一个缺点是所有资源实际上都变成了单例。如果您的资源是仅服务请求的简单对象,那么这没什么大不了的,如果您的资源在其上存储任何类型的状态,那就很重要了。

关于jersey - 是否可以将 dagger2 与 jersey 一起使用,就像与 guice 一样使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277675/

相关文章:

java - Eclipse:JerseyTest.getClient 返回 RestEasyClient

java - @Binds 方法必须只有一个参数,其类型可分配给返回类型

rest - Jersey 与 javax Servlet 发生冲突

JAX-RS 和 Maven 的 java.lang.ClassNotFoundException

java - 为什么我在尝试从 Stormpath 获取 OAuth2 key 时收到 com.stormpath.sdk.lang.InstantiationException?

android - 将 ViewModelProvider.Factory 的提供者注入(inject) esspresso 测试

android - 如何在自定义 View 或其他 android 类中使用 AndroidInjection 类?

android - lateinit 属性尚未用 dagger2 初始化

dagger-2 - 为什么不安装 AndroidInjectionModule 仍然可以工作?

java - 在 Linux 和 Windows 上的 Grizzly 上运行 Jersey