我目前正在阅读 Spring,用于使用 AOP 的示例之一是记录方法调用的开始和结束。
我还读到使用 AOP 会影响性能。
对于这种类型的日志记录,使用 Spring AOP 是一个好主意吗?我的理解是,Spring 使用动态 AOP 对这种类型的 AOP 使用静态 AOP(如 AspectJ)会更好。
目前,我工作的公司的编码政策需要大量的日志记录,我想减少我必须编写的日志记录代码的数量并提高我的代码的可读性。
我在吠叫错误的树吗?
我目前正在阅读 Spring,用于使用 AOP 的示例之一是记录方法调用的开始和结束。
我还读到使用 AOP 会影响性能。
对于这种类型的日志记录,使用 Spring AOP 是一个好主意吗?我的理解是,Spring 使用动态 AOP 对这种类型的 AOP 使用静态 AOP(如 AspectJ)会更好。
目前,我工作的公司的编码政策需要大量的日志记录,我想减少我必须编写的日志记录代码的数量并提高我的代码的可读性。
我在吠叫错误的树吗?
我使用 Spring AOP 来实现日志记录,所以我分享我的观察:
this
句柄而不是 AOP 包装的句柄),因此无法记录。因此,所有日志记录只能发生在接口边界上。(这涉及到使用基于代理的方面编织,有一个使用 cglib 进行运行时子类化的选项,但我没有使用它)阅读这篇关于您的性能问题的博文。
考虑 AOP 的方法是将提供的功能优势放在首位。如果自动日志记录是您的要求并且 AOP 适合它 - 去吧。
也就是说,如果需要细粒度的日志记录,加载时编织当然是首选。
我这样做的方式与这篇博文中描述的方式类似。这是我找到的最好的,它还有一个示例,很好地显示了使用和不使用 AOP 之间的区别。
恕我直言,这是不值得的,除非您正在做一些比记录更有趣的事情,例如持久性的错误管理。如果您有良好的异常层次结构(域、系统)并正确设置日志边界,您将不会减少太多日志代码。