我使用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;
我按预期正确获取这些对象,并且我的服务正常运行。
有什么更好的方法呢?