当前位置: 首页 > 知识库问答 >
问题:

在Jersey 2.x中,一个特性由HK2实例化。我如何使用我添加的工厂?

葛飞扬
2023-03-14

在奇怪的Jersey依赖项注入世界中,您可以在应用程序getSingletons()方法的返回值中包含AbstractBinder(但可能不仅仅是Binder)作为对象之一。

(您也可以使用工厂类来完成这一操作,这样您就可以将特定工厂方法的返回值绑定到它实现的契约。)

好吧,好吧。

Jersey还允许将实现特性放入应用程序getClasses()方法的返回值中。很好。这个feature类将由HK2在封面下实例化--记住这一点!--它的configure(FeatureContext)方法将在某个时候被调用。此时,feature可以通过调用featureContext#register()并将它想要注册的内容交给它来注册一些附加的内容。(想必这都是HK2的DynamicConfiguration机器之上的一个相当复杂的外观。)

共有1个答案

屠兴旺
2023-03-14

我认为代理foo接口绑定很重要,即:

new AbstractBinder() {
            @Override
            protected void configure() {
                bind(Foo.class)
                    .proxy(true)
                    .to(FooImpl.class)
                    .in(Singleton.class);
            }
}

则依赖注入将对初始化顺序不敏感。

 类似资料:
  • 我们正在使用using通过将app ServiceLocator桥接到Jersey ServiceLocator中,将在一个ServiceLocator中创建的现有单例应用程序服务注入到Jersey RESTful Web服务中。 然而,存在于“外部”定位器中的单例并没有被使用--每个服务都是在注入到Jersey服务中时再次创建的。单例似乎只在ServiceLocator的范围内可见,即使它是桥接

  • 问题内容: 我的网站上有一个jqgrid(版本3.5.3),它是通过对Web服务的Ajax调用获取结果的。查询通常很复杂,加载结果需要花费几秒钟的时间。加载时,用户会看到一个框[Loading …]。 如果用户意识到他们在搜索错误的内容,则客户端要求向网格添加一个取消按钮,这将: 使网格忘记刚刚请求的数据 保留先前搜索中已加载的结果 似乎没有内置任何功能,因此我可能正在寻找一些技巧来实现这一目标。

  • 这是我的应用程序属性部分: Spring云流动兔子绑定。学生输入。消费者交换类型=直接Spring。云流动兔子绑定。学生输入。消费者延迟交换=真 但似乎在RabbitMQ管理页面中,它在我的队列的Args in功能中没有x延迟类型:直接。我引用的是这个Spring Cloud Stream留档:https://docs.spring.io/spring-cloud-stream/docs/Elmh

  • 我正在尝试理解HK2工厂在泽西应用程序中的实现。 null 每个请求都会创建MyFactory的两个对象 单例工厂,我的理解是,工厂(MyFactory)的一个单一对象,它在注入时提供某种对象。 所以(1)应该工作还是我遗漏了什么? 当位置在下方时,位置在上方的NPE 在以下位置时,在上面位置无NPE

  • 我一直在使用来自https://apimeister.com/2015/06/27/add-jar-to-the-classpath-at-runtime-in-jjs.html在java的nashorn jjs中运行时加载类。 它在java 8中工作,但在java 9中不工作。我知道https://stackoverflow.com/a/41265267/5891192中提到的推荐命令行解决方案

  • 问题内容: 我添加了AsyncTask来将网络操作卸载到后台线程。我需要确保UI操作位于UI线程上,因此我想在Activity中使用runOnUiThread()。 谢谢你的帮助 WifiApManager connect.java 编辑 我想在TextView中显示已处理的文本 问题答案: 我添加了AsyncTask来将网络操作卸载到后台线程。我需要确保UI操作位于UI线程上,因此我想在Acti