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

Jetty 在Guice服务模块中创建SimpleJDBCall的两个实例,jetty,guice,Jetty,Guice,我使用postgreSql存储过程来执行对数据库的更改,并使用SimpleJDBCall连接到数据库。现在,我需要根据我调用的过程创建几个实例 My Launcher文件服务模块具有以下方法: @Provides @Inject @Named("jdbcTemplate") JdbcTemplate provideJDBCClient(){return new JdbcTemplate()} @Provides @Inject @Named("aTypeSimpleJdbcCall") Sim

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

My Launcher文件服务模块具有以下方法:

@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;
我正在按照预期正确获取这些对象,并且我的服务工作正常


有什么更好的方法吗?

欢迎使用StackOverflow。就目前情况而言,这个问题可能会被解决,因为它主要是基于意见的。你能不能编辑一下,试着问一个更具体、更能回答的问题?您也可以考虑StAdExchange,但请记住遵循它们的问题。一些快速注释,您不需要对提供方法注入注解,我建议研究构造注入。(请记住,如果Guice具有无参数构造函数、无绑定或提供所需的参数,它将自动实例化和注入类!)。