Custom StoredProcedure类作为Spring组件,并扩展了jdbc StoredProcedure

问题描述 投票:0回答:1

我有一个自定义的存储过程类,该类正在扩展jdbc.StoredProcedure,但是我已经用Spring @Component注释了该类,以将该类bean引入Spring上下文。

我为什么要这样做?

  1. 我想在execute方法上添加spring-retry,该方法仅对spring组件有效
  2. 我想重用已编译的StoredProcedure,而不是每次创建新对象并重新编译,这样我就可以每次重用已编译的StoredProcedure。

这种实现有什么问题吗?使用基于Spring组件的StoredProcedure,我们可能会遇到任何问题吗?

Ex:

    @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);
  }
}
java spring stored-procedures spring-data spring-jdbc
1个回答
0
投票

尝试实现分层的应用程序体系结构,在该体系结构中,您可以像下面的示例一样通过spring retry注释服务:

https://dzone.com/articles/spring-retry-way-to-handle-failures

这些服务方法可以定义事务边界并调用您的数据持久层方法,这些方法可以基于spring数据的标准化方法来调用存储过程和管理数据库连接等。

© www.soinside.com 2019 - 2024. All rights reserved.