Java Spring MVC:不带参数的日志控制器路径

Java Spring MVC:不带参数的日志控制器路径,java,spring-mvc,Java,Spring Mvc,我正在尝试向SpringMVC应用程序添加一些度量集合。假设我有一个控制器,其映射为: /User/{username}/Foobar 我想收集所有控制器映射调用的指标。现在,我可以创建一个处理程序/拦截器并查看请求,但这将为我提供: /User/Charlie/Foobar 这不是我想要的。我希望控制器将自身映射到日志。我不想给每个控制器都添加一些东西。如果可以的话,我也不想使用AOP。我可以想出两个选择: 在我看来,匹配的结果是在类中获得的,该类记录获得的模式(参见第266行)。我会尝

我正在尝试向SpringMVC应用程序添加一些度量集合。假设我有一个控制器,其映射为:

 /User/{username}/Foobar
我想收集所有控制器映射调用的指标。现在,我可以创建一个处理程序/拦截器并查看请求,但这将为我提供:

/User/Charlie/Foobar

这不是我想要的。我希望控制器将自身映射到日志。我不想给每个控制器都添加一些东西。如果可以的话,我也不想使用AOP。

我可以想出两个选择:

  • 在我看来,匹配的结果是在类中获得的,该类记录获得的模式(参见第266行)。我会尝试为该类启用日志记录,看看输出是否有助于您的目的

  • (复杂)

    扩展以覆盖继承自
    AbstractUrlHandlerMapping
    lookupHandler
    方法,并记录/注册所需内容。根据,您可以注册一个不同的版本,以便
    DispatcherServlet
    使用您的版本

    在Spring 3.2.x中,不推荐使用
    DefaultAnnotationHandlerMapping
    ,因此必须使用不同的类


  • 结果表明,Spring在请求本身上挂起了最佳匹配的控制器模式。您可以从handlerinterceptor中获得如下信息:

     (String)request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE)
    

    更简单,更明确。