У меня есть собственный класс хранимых процедур, который расширяет jdb c .StoredProcedure, но я аннотировал этот класс с помощью Spring @Component, чтобы перевести этот компонент класса в контекст Spring.
Почему я это делаю?
- Я хотел добавить Spring-Retry для метода execute, который будет работать только для компонентов Spring
- Я хотел повторно использовать скомпилированную StoredProcedure вместо создания нового объекта и повторной компиляции каждый раз, таким образом я могу повторно использовать скомпилированную StoredProcedure каждый раз.
что-то не так с такой реализацией? Есть ли какие-либо проблемы, которые мы можем видеть с этим основанным на компоненте Spring StoredProcedure?
Пример:
@Component
public class ExampleStoredProcedure extends StoredProcedure {
@Autowired
private DataSource dataSource;
@Postconstruct
public void init() {
super.setDataSource(dataSource);
setSql("stored_procedure_name");
//TODO declare parameters
compile();
}
public void execute(){
//Todo set all parameters to ParameterSource
super.execute(parameterSource);
}
}