当前位置: 首页 > 面试题库 >

配置Guice模块提供的对象

吕骞尧
2023-03-14
问题内容

我有一个Module提供这样的JDBI DBI实例:

@Provides
@Singleton
DBI dbi(DataSource dataSource) { return new DBI(dataSource); }

在另一个模块中,我想在该DBI实例上调用一些初始化方法(配置对特定数据类型的支持)。放入JDBI模块本身是不合适的逻辑,因为它是特定于应用程序的,而不是使用JDBI的任何应用程序所通用的。我是否可以进行这种“额外”配置?

我尝试使用该bindListener方法,但似乎没有为以这种方式提供的对象调用该方法。


问题答案:

该吉斯注射文档描述了如何通过注释与@注入的方法来调用一个实例方法。

它没有提到实例可以是Guice模块。这样,您可以执行以下操作:

class MyConfigurationModule extends AbstractModule {
  @Override
  protected void configure() {
    requestInjection(this);
  }

  @Inject
  void configureDbi(DBI dbi) {
    // Do whatever configuration.
  }  
}


 类似资料:
  • 问题内容: 我有一个提供这样的JDBI 实例: 在另一个模块中,我想在该DBI实例上调用一些初始化方法(配置对特定数据类型的支持)。放入JDBI模块本身是不合适的逻辑,因为它是特定于应用程序的,而不是使用JDBI的任何应用程序所通用的。我是否可以进行这种“额外”配置? 我尝试使用该方法,但似乎没有为以这种方式提供的对象调用该方法。 问题答案: 该吉斯注射文档描述了如何通过注释与@注入的方法来调用一

  • 问题内容: 我当然缺少有关喷油器的一些基本知识,但是我无法理解为什么 还有这个 按预期工作,而这 会抛出 错误:[$ injector:unpr]未知提供程序:$ provideProvider <-$ provide 如下所述,与提供者有一些特殊的关系,而与实例打交道时,我不确定使块如此特别的东西。 结果,是否没有办法到达外部块,例如,使用(尽管似乎也获得了提供者实例)? 除了好奇心外,这个问题

  • 在我的Guice模块中,我希望将FXML文件和它们的控制器关联起来,目前看起来如下所示:

  • 一、简介 黄页模块的基本设置 二、基本设置 三、SEO设置 二、权限设置

  • SOFABoot 模块是一个普通的 Jar 包加上一些 SOFABoot 特有的配置,这些 SOFABoot 特有的配置,让一个 Jar 包能够被 SOFABoot 识别,使之具备模块化的能力。 一个完整的 SOFABoot 模块和一个普通的 Jar 包有两点区别: SOFABoot 模块包含一份 sofa-module.properties 文件,这份文件里面定义了 SOFABoot 模块的名称

  • 节点发现模块的配置 我们已经多次提到,ElasticSearch创建的目的就是对应集群工作环境。这是跟与ElasticSearch功能类似的其它开源解决方案(比如solr)主要的不同点。其它解决方案也许同样能或难或易地应用于多节点的分布式环境,但是对对于ElasticSearch来说,工作在分布式环境就是它每天的生活。由于节点发现机制,它最大程度简化了集群的 安装和配置。 该发现机制主要基于以下假