gpt4 book ai didi

java - @Retryable 在 spring-data 存储库接口(interface)中不起作用

转载 作者:行者123 更新时间:2023-12-02 02:58:26 25 4
gpt4 key购买 nike

添加@Retryable后我的 spring-data-cassandra 存储库接口(interface)的注释,现在应用程序无法启动,并出现以下异常:

应用程序无法启动

The bean 'airingDao' could not be injected as a 'my.dao.AiringDao' because it is a JDK dynamic proxy that implements:
org.springframework.data.cassandra.repository.CassandraRepository

行动:

Consider injecting the bean as one of its interfaces or forcing the use of CGLib-based proxies by setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching.

已添加proxyTargetClass=true@EnableAsync@EnableCaching ,甚至到@EnableRetry(proxyTargetClass = true) @EnableAspectJAutoProxy(proxyTargetClass = true)

但是还是不行。

删除 @Retryable 后,一切都很好。

检查了代码,没有@Retryable ,在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(String, Class<T>, Object[], boolean)

bean.getClass().getInterfaces()
(java.lang.Class<T>[]) [interface my.dao.AiringDao, interface
org.springframework.data.repository.Repository, interface
org.springframework.transaction.interceptor.TransactionalProxy, interface
org.springframework.aop.framework.Advised, interface
org.springframework.core.DecoratingProxy]

所以requiredType.isAssignableFrom(bean.getClass())true

但是添加@Retryable之后:

bean.getClass().getInterfaces()
(java.lang.Class<T>[]) [interface
org.springframework.retry.interceptor.Retryable, interface
org.springframework.aop.SpringProxy, interface
org.springframework.aop.framework.Advised, interface
org.springframework.core.DecoratingProxy]

现在requiredType.isAssignableFrom(bean.getClass()))falsegetTypeConverter().convertIfNecessary(bean, requiredType)抛出异常。

有人可以帮忙或提供一些如何解决问题的线索吗?感谢您的帮助。

最佳答案

不了解 Spring Retry,也没有详细检查,但我怀疑 Spring Data 和 Spring Retry 之间还没有集成。如果这是真的,您可以使用两种方法:

  1. 在 Spring Data 或 Spring Retry 上提出问题以实现集成。

  2. 为您引入一个单独的层@Retry,然后将其委托(delegate)给您的 Spring Data 存储库。

当然,这些方法并不相互排斥。

关于java - @Retryable 在 spring-data 存储库接口(interface)中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42730104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com