在Guice服务模块中创建SimpleJdbcCall的两个实例

时间:2017-06-12 20:31:44

标签: jetty guice

我使用postgreSql存储过程来执行对数据库的更改并使用SimpleJdbcCall连接到它。现在我需要根据我调用的过程创建它的几个实例。

我的启动器文件服务模块有以下方法:

@Provides
@Inject
@Named("jdbcTemplate")
JdbcTemplate provideJDBCClient(){return new JdbcTemplate()}

@Provides
@Inject
@Named("aTypeSimpleJdbcCall")
SimpleJdbcCall getSimpleJdbcCallForTypeA(@Named("jdbcTemplate")) {
      SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate);
      simpleJdbcCall.setSchema("some");
      simpleJdbcCall.setProcedureName("someName");
      return simpleJdbcCall;
}

@Provides
@Inject
@Named("bTypeSimpleJdbcCall")
SimpleJdbcCall getSimpleJdbcCallForTypeB(@Named("jdbcTemplate")) {
      SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate);
      simpleJdbcCall.setSchema("some");
      simpleJdbcCall.setProcedureName("someOtherName");
      return simpleJdbcCall;
}

现在在我需要这些对象来调用excecute方法的类中,我正在引用这样的对象:

@Inject
@Named("aTypeSimpleJdbcCall")
private SimpleJdbcCall simpleJdbcCallForTypeA;

@Inject
@Named("bTypeSimpleJdbcCall")
private SimpleJdbcCall simpleJdbcCallForTypeB;

@Inject
private JdbcTemplate jdbcTemplate;

我按预期正确获取这些对象,并且我的服务正常运行。

有什么更好的方法呢?

0 个答案:

没有答案