我正在尝试使用Spring框架AOP扩展一些类AImpl(实现接口A),以便能够实现新的接口B.
我正在使用@DeclareParents并实现Aspect。不幸的是,我需要访问A的一些方法才能在其中实现业务逻辑。
有人知道比将A作为参数添加到接口B方法更好的解决方案吗?
是否有人成功使用Spring AOP介绍以我需要的方式扩展类?我能够找到的所有样本仅在"静态方式"中扩展了A类。无需从A中调用方法。
到目前为止,我只找到了AopContext.currentProxy()方法,我认为这个方法非常丑陋。
答案 0 :(得分:1)
我担心你只有两种方法可以从B
访问A.expose-proxy="true"
我试图在接口B的方法上使用around建议,希望访问原来的代理,这个代理实现了两个接口。但是Spring用另一个只用B来实现正确目标的代理来替换它。
实际上有第三种方式,但恕我直言这个 非常难看:接口B的所有方法明确地采用实现A ... bof的参数...: - (