你正在解决错误的问题。代理的bean并不是要以一种或另一种方式转换为原始类。这将打破依赖注入的全部观点。毕竟:当你将依赖项指定为接口时,你是在请求一个满足合同的Bean,而不是实现详细信息。将其强制转换为原始bean类可以打破这种松散的耦合。
你是说其他方法由你调用的接口备份
OtherInterface,那么为什么不使用它呢?毕竟,代理将实现所有目标类的接口,而不仅仅是注入的接口。
@Testpublic void testAdditionalMethod(){ OtherInterface oi = (OtherInterface) dao; System.out.println(oi.additionalMethod(...));}
基本上,你可以使用以下选项(从干净到肮脏不等):
- 分开你的顾虑并为不同的接口使用不同的bean
- 创建延伸的metainterface OtherInterface并PersonDao让你的bean实现一个metainterface
- 在任何给定时刻将bean投射到所需的接口。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)