当前位置: 首页 > 面试题库 >

Spring:标准日志方面(拦截器)

韦繁
2023-03-14
问题内容

我发现了很多关于如何创建使用像Spring框架登录定制方面的例子这还是这个,但没有发现这种情况和问题,standard/common Spring实现。是否有来自Spring的日志记录方面的任何标准实现?


问题答案:
<bean id="customizableTraceInterceptor" class="org.springframework.aop.interceptor.CustomizableTraceInterceptor">
    <property name="enterMessage" value="Entering $[methodName]($[arguments])"/>
    <property name="exitMessage" value="Leaving $[methodName](): $[returnValue]"/>
</bean>
<aop:config>
    <aop:advisor advice-ref="customizableTraceInterceptor" pointcut="execution(public * BankAccountServlet.*(..))"/>
</aop:config>

签出CustomizableTraceInterceptor API,你可以定义带有几个占位符的单独的enter / exit / exception消息:

  • $[methodName] -替换为被调用方法的名称
  • $[targetClassName] -替换为作为调用目标的类的名称
  • $[targetClassShortName] -替换为作为调用目标的类的简称
  • $[returnValue] -替换为调用返回的值
  • $[argumentTypes] -替换为以逗号分隔的方法参数的简短类名列表
  • $[arguments] -用方法参数的字符串表示形式的逗号分隔列表替换
  • $[exception] -替换为调用期间引发的任何Throwable的String表示形式
  • $[invocationTime]-替换为方法调用所花费的时间(以毫秒为单位)


 类似资料:
  • 我正在使用spring AOP拦截这些方法。我在spring配置文件中有以下配置。 方面类: 上面的方法不拦截私有方法?要求方面既拦截私有方法,又拦截公有方法,怎么办?

  • 现在,当我到达spring-boot应用程序的endpoint时,它工作得很好 基本上,它根本不调用preandle。我错过了什么????

  • 主要内容:定义拦截器,配置拦截器,拦截器的执行流程,多个拦截器的执行流程。拦截器(Interceptor)是 Spring MVC 提供的一种强大的功能组件。它可以对用户请求进行拦截,并在请求进入控制器(Controller)之前、控制器处理完请求后、甚至是渲染视图后,执行一些指定的操作。 在 Spring MVC 中,拦截器的作用与 Servlet 中的过滤器类似,它主要用于拦截用户请求并做相应的处理,例如通过拦截器,我们可以执行权限验证、记录请求信息日志、判断用户是

  • 主要内容:定义拦截器,注册拦截器,指定拦截规则,实现登陆功能,验证登陆及登陆拦截功能我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了拦截器功能。  在 Spring Boot 项目中,使用拦截器功能通常需要以下 3 步: 定义拦截器; 注册拦截器; 指定拦截规则(如果是拦截所有,静态资源也会被拦

  • 我有一个超文本传输协议服务器写入日志文件,然后使用Flume将其加载到HDFS。首先,我想根据标头或正文中的数据过滤数据。我读到我可以使用正则表达式的拦截器来做到这一点,有人能解释一下我需要做什么吗?我需要编写Java代码来覆盖Flume代码吗? 我还想获取数据并根据标头将其发送到不同的接收器(即 source=1 转到 sink1,source=2 转到 sink2)这是如何完成的? 谢谢 希蒙