小编典典

配置Guice模块提供的对象

java

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

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

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

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


阅读 179

收藏
2020-11-30

共1个答案

小编典典

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

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

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

  @Inject
  void configureDbi(DBI dbi) {
    // Do whatever configuration.
  }  
}
2020-11-30