抽象的DAO模式和Spring的“代理不能转换为...”问题!

抽象的DAO模式和Spring的“代理不能转换为...”问题!,第1张

抽象的DAO模式和Spring的“代理不能转换为...”问题!

你正在解决错误的问题。代理的bean并不是要以一种或另一种方式转换为原始类。这将打破依赖注入的全部观点。毕竟:当你将依赖项指定为接口时,你是在请求一个满足合同的Bean,而不是实现详细信息。将其强制转换为原始bean类可以打破这种松散的耦合。

你是说其他方法由你调用的接口备份

OtherInterface
,那么为什么不使用它呢?毕竟,代理将实现所有目标类的接口,而不仅仅是注入的接口。

@Testpublic void testAdditionalMethod(){    OtherInterface oi = (OtherInterface) dao;    System.out.println(oi.additionalMethod(...));}

基本上,你可以使用以下选项(从干净到肮脏不等):

  1. 分开你的顾虑并为不同的接口使用不同的bean
  2. 创建延伸的metainterface OtherInterface并PersonDao让你的bean实现一个metainterface
  3. 在任何给定时刻将bean投射到所需的接口。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4912386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存