是否可以在不创建b​​ean的情况下使用Spring AOP?

时间:2014-04-30 17:25:44

标签: java spring aop spring-aop

Spring AOP依赖于代理机制 - J2SE动态代理或使用CGLIB(根据spring文档)。 是否可以使用Spring定义的AOP机制而无需在spring应用程序上下文中创建/声明bean?

如果Spring不可能 - AspectJ的加载时间编织(LTW)或编译时间编织(CTW)将有助于解决问题吗?

要求:尝试为我的旧项目实施日志记录和事务管理,而不将POJO声明为spring bean。

2 个答案:

答案 0 :(得分:2)

不,你必须把它们置于Spring的控制之下。你不能要求Spring向豆子提供它不知道的建议。

没有打电话给" new&#34 ;;必须用应用程序上下文替换它们。

答案 1 :(得分:1)

如@duffymo所述,Spring只能对在其上下文中声明的bean进行操作。

AspectJ,无论是LTW还是CTW,都可以用来实现你想要的目标。

您可能考虑的另一个工具是Byteman,它们在较低级别运行,但如果性能对您来说是个问题,则开销也较低。