【问题标题】:Why must methods annotated with @Transactional be overrideable为什么用 @Transactional 注释的方法必须是可覆盖的
【发布时间】:2018-10-09 07:04:51
【问题描述】:

我有以下代码:

/**
 * Restored deleted partner
 */
@Transactional
public void restorePartnerById(Integer id){
    // logic      
}

当我最终确定方法时

/**
 * Restored deleted partner
 */
@Transactional
public final void restorePartnerById(Integer id){
    // logic      
}

我收到一个编译错误说明:

带有@Transactional 注释的方法必须是可覆盖的

我四处寻找,但我不明白为什么它必须是可覆盖的,为什么方法必须是可覆盖的?

【问题讨论】:

    标签: java spring-boot overriding spring-transactions transactional


    【解决方案1】:

    Spring 的 Transactional 用于创建覆盖方法的代理类:

    围绕从 fooService bean 定义创建的对象创建一个事务代理。代理将配置事务通知,以便在 代理

    上调用适当的方法时

    【讨论】:

      【解决方案2】:

      我认为将方法更改为 final 与 @Trasacational 无关,请参阅此链接 @Trasactional 将如何工作 http://www.codingpedia.org/jhadesdev/how-does-spring-transactional-really-work/

      【讨论】:

      • 页面不存在
      猜你喜欢
      • 1970-01-01
      • 2021-05-24
      • 2012-11-05
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 2018-02-23
      • 2020-08-23
      • 2016-08-29
      相关资源
      最近更新 更多