我正在寻找配置我的 API 的选项。我发现 Spring AOP 是分析方法的选项之一。
Spring AOP 中有两个选项来配置和使用方面:
根据我的理解,第一个选项(load-time-weaver)在加载时执行编织而不创建任何代理对象。第二个选项(aspectj-autoproxy)创建代理对象。我对此是否正确?我相信,代理对象的创建可能会影响性能。不会吗?
考虑到更好的性能,最好选择哪个选项?两种方法的优缺点是什么?
我正在寻找配置我的 API 的选项。我发现 Spring AOP 是分析方法的选项之一。
Spring AOP 中有两个选项来配置和使用方面:
根据我的理解,第一个选项(load-time-weaver)在加载时执行编织而不创建任何代理对象。第二个选项(aspectj-autoproxy)创建代理对象。我对此是否正确?我相信,代理对象的创建可能会影响性能。不会吗?
考虑到更好的性能,最好选择哪个选项?两种方法的优缺点是什么?
好吧,Narendra,首先有用于分析软件的分析器。也许没有必要自己编写任何代码。
至于你的问题:我不知道如何配置 Spring,因为我从不使用它。我是 AspectJ 用户。我所知道的是,Spring AOP总是使用代理(JDK 或 CGLIB,取决于您是否需要代理接口或类)。正如您所说,这是您可能不希望进行分析的东西。AspectJ,无论您使用编译还是加载时间编织,都不需要或使用代理,因此应该更快。如果你还没有在你的项目中使用 Spring,我不会为了满足你的分析需求而碰它。此外,Spring AOP 仅适用于 Spring Beans,仅提供方法拦截,仅此而已。AspectJ 是一个成熟的 AOP 实现,并且功能更强大。如果您已经在使用 Spring,您可以选择在 Spring 中使用 Spring AOP、AspectJ 或两者的混合。