我现在正在阅读Spring,其中一个用于使用AOP的示例是记录方法调用的开始和结束。
我还读到使用AOP会影响性能。
对于这种类型的日志记录,使用Spring AOP是个好主意吗?我的理解是Spring使用Dynamic AOP会更好地将静态AOP(如AspectJ)用于此类AOP。
我所工作的公司的编码策略需要大量的日志记录,我希望减少我必须编写的日志代码量并提高代码的可读性。
我是在咆哮错误的树吗?
答案 0 :(得分:34)
我使用Spring AOP实现日志记录,所以我分享了我的观察结果:
this
句柄而不是AOP包裹的句柄时),因此无法记录。因此,所有日志记录只能在接口边界上发生。 (这涉及使用基于代理的方面编织,有一个运行时子类与cglib的选项,但我没有使用它)答案 1 :(得分:14)
请阅读this blog-post,了解您的效果问题。
考虑AOP的方法是首先提供所提供的功能优势。如果您需要自动记录并且AOP适合它 - 那就去吧。
尽管如此,如果需要进行细粒度测井,负载时间编织当然是首选。
答案 2 :(得分:3)
我的做法与this blog post中描述的方式类似。这是我发现的最好的,它也有sample,很好地显示了使用和不使用AOP之间的区别。
Imho它是不值得的,除非你做的更好的事情然后记录,比如持久性的错误管理。如果您有一个良好的异常层次结构(域,系统)并正确设置日志记录边界,则不会减少很多日志记录代码。