Spring介绍访问原始介绍类

时间:2014-07-28 09:29:48

标签: java spring aop spring-aop

我正在尝试使用Spring框架AOP扩展一些类AImpl(实现接口A),以便能够实现新的接口B.

我正在使用@DeclareParents并实现Aspect。不幸的是,我需要访问A的一些方法才能在其中实现业务逻辑。

有人知道比将A作为参数添加到接口B方法更好的解决方案吗?

是否有人成功使用Spring AOP介绍以我需要的方式扩展类?我能够找到的所有样本仅在"静态方式"中扩展了A类。无需从A中调用方法。

到目前为止,我只找到了AopContext.currentProxy()方法,我认为这个方法非常丑陋。

1 个答案:

答案 0 :(得分:1)

我担心你只有两种方法可以从B

访问A.
  • AopContext.currentProxy() - 不是那么难看但强迫你使用expose-proxy="true"
  • 通过Spring直接在B中注入A - 两者都不是单身人士

我试图在接口B的方法上使用around建议,希望访问原来的代理,这个代理实现了两个接口。但是Spring用另一个只用B来实现正确目标的代理来替换它。

实际上有第三种方式,但恕我直言这个 非常难看:接口B的所有方法明确地采用实现A ... bof的参数...: - (