java如果我想代理所有服务调用,以便在不显式调用记录器的情况下正确记录它们,我有什么选择?
与其试图让开发人员记住记录每个服务方法调用和/或异常,是否有一种模式可以在记录调用的过程中代理正确的服务方法,并捕获/记录在将响应返回给调用方之前抛出的任何异常?我知道有一种代理模式,但我不确定它是否能满足我的需要。。。如果有一种方法可以创建一个更好地执行日志记录要求的接口,那么我也愿意这么做
你可以在下面搜索框中键入要查询的问题!
与其试图让开发人员记住记录每个服务方法调用和/或异常,是否有一种模式可以在记录调用的过程中代理正确的服务方法,并捕获/记录在将响应返回给调用方之前抛出的任何异常?我知道有一种代理模式,但我不确定它是否能满足我的需要。。。如果有一种方法可以创建一个更好地执行日志记录要求的接口,那么我也愿意这么做
# 1 楼答案
您可以考虑使用动态代理来实现服务层。
它使用反射api,因此对服务代码的所有方法调用都将通过一个“invoke”方法进行,您可以在其中记录服务调用、方法参数和异常消息
在你呼叫服务的地方,你会这样做
# 2 楼答案
伐木是一个贯穿各领域的问题。你可以使用AOP。看看
AspectJ
或Spring AOP