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