gpt4 book ai didi

java - Google Guice 与 Dropwizard 的配合

转载 作者:行者123 更新时间:2023-11-30 06:31:11 25 4
gpt4 key购买 nike

我浏览了official documentation Guice 的内容,它说我们需要创建一个包含所有 Guice 模块的注入(inject)器,然后调用如下内容:

  Injector injector = Guice.createInjector(new BillingModule());
BillingService billingService = injector.getInstance(BillingService.class);

但是当我浏览dropwizard-guiceexample 。它正在创建 GuiceBundle 并将其添加到 bootstrap 中:

bootstrap.addBundle(guiceBundle);

我想了解它是如何将代码中任何位置编写的 @Inject 与 Guice 包提供的实例链接起来的内部工作。

最佳答案

Dropwizard 与 Jersey 捆绑在一起,Jersey 带有自己的 HK2 DI。

如果您尝试使用答案中提到的 Guice 注入(inject),Guice 将拥有自己的模块上下文,而 HK2 模块将无法使用该上下文。

为了使上述工作正常进行,需要一个库来在它们之间建立一座桥梁。 HubSpot/dropwizard-guice 就是这样一个桥接库。这必须在应用程序的引导阶段完成,以便当 Jersey 初始化时,HK2 知道 Guice 模块。

您可以引用以下链接以获取更多信息:

https://javaee.github.io/hk2/guice-bridge.html

Guice don't inject to Jersey's resources

关于java - Google Guice 与 Dropwizard 的配合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46082377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com