在Spring Core Advice API 文档中定义了两种建议:
- 每类建议 - 不得“依赖于代理对象的状态或添加新状态”
- 每个实例的建议 - “将状态添加到代理对象”
根据 javadocs, RequestHandlerRetryAdvice具有无状态和有状态的操作模式。
在什么情况下 RequestHandlerRetryAdvice 可以用作每个类的建议?(即使用单个 bean 来通知多个处理程序)。
可以将“无状态模式”实例用作每个类的建议吗?
可以将“有状态模式”实例用作每个类的建议吗?
我找不到有关 RequestHandlerRetryAdvice 是否将状态添加到代理对象的信息,这是应用每个类/每个对象建议的标准条件的必要条件,如 Spring Core 参考中所述。
我的期望是在有状态模式下,建议不能作为每个类使用。
而对于无状态模式,尚不清楚它是否扩展了状态。(如果由多个处理程序共享 - 它要求在任何给定时刻最多有一个处理程序使用重试建议?)
请注意,另一篇文章中的答案暗示它总是可以的,因为它是“线程安全的”。但是,根据 Spring Core 参考文档(上面引用),这种条件不足以允许按类使用。