Похоже, вы хотите динамически вводить свой rowcallbackHandler, потому что вы делаете объект каждый раз, когда выполняете SQL.
Как правило, инъекция зависимостей весны должна использоваться только на одноэлементных объектах (например, Сервисы, DAO и т. Д.). Это обратный вызов, как объекты, не нужно или использовать инъекции зависимостей. Вместо этого вам необходимо связать окружающий однопользовательский объект (@ Service, @ Controller, @ Repository ... и т. Д.) С тем, что нужно вашему callbackhandler, а затем получить доступ к зависимостям через конструктор или регулярное закрытие-как-лексическое охват (я забыл, что его вызывается на Java). Я не знаю, каков ваш уровень навыков на Java, но похоже, что вы не знаете об анонимных классах.
Вот пример использования анонимных классов.
@Service
public MyService {
@Autowired
JdbcTemplate template;
@Autowired
Something something;
public void doSomething() {
template.query("select * from something", new RowCallbackHandler() {
public void processRow(ResultSet rs) {
System.out.println(something);
//actually do something
}
});
}
}
Это сказанное вы можете автоматически вводить объекты с new Blah()
, но это требует @Configurable
AspectJ магии (не делайте этого, если вы не знаете, что делаете).
Вы не предоставляете достаточно подробностей, чтобы помочь вам. Что это за приложение? какая у вас конфигурация Spring? можем ли мы взглянуть на фрагмент кода, в котором у вас возникла проблема? –