我打算在春天处理伐木。
很少有人建议通过LoggingInterceptor来处理它,也有人建议使用AOP横切关注点。
对于企业应用程序,建议采用哪一种方法或最佳实践?
谢谢。
发布于 2018-03-26 05:10:17
这两种方法各有优缺点。通过LoggingInterceptor进行日志记录是更好的方法,因为它是Java提供的处理日志的标准库,您也可以进行自定义日志记录。
当您希望在更细粒度的级别上实现日志记录时,AOP更好地应用于函数或类的某些返回值。例如,如果只希望在返回值为null时才记录请求。您可以将AOP用作:
@AfterReturning(pointcut = "execution(* com.foo.bar..*.*(..))", returning =
"retVal")
public void logAfterMethod(JoinPoint joinPoint, Object retVal) {
...
}您也可以使用对返回值进行日志记录,但是您需要为此编写另一个函数。一-e
public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object
arg3) throws Throwable {
log = LogFactory.getLog(arg3.getClass());
log.info("LOGGING IS: "+arg1.getName());
}从生产角度来看,AOP具有性能开销,因为您要在执行所有服务调用时增加开销。而Logging Intercept只是一个具有正常执行周期的类。
https://stackoverflow.com/questions/49467489
复制相似问题