1-4. SpringBoot配置自定义拦截器,实现日志管理
程序员文章站
2022-06-12 10:24:33
最近突发奇想,整合一下以前一些学习笔记,分享自己这几年爬过的坑,逐步更新文章,谢谢大家的关注和支持。自定义一个类实现HandlerInterceptorpackage cn.sysu.ming.interceptor;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.H...
最近突发奇想,整合一下以前一些学习笔记,分享自己这几年爬过的坑,逐步更新文章,谢谢大家的关注和支持。
自定义一个类实现HandlerInterceptor
package cn.sysu.ming.interceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyInterceptor implements HandlerInterceptor {
private static final Logger log = LoggerFactory.getLogger(MyInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.info("preHandle 方法执行了");
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
log.info("afterCompletion 方法执行了");
}
}
当配置完拦截器后,还得告诉SpringBoot,因为拦截器不是一个普通属性,而是一个类,所以用到了java配置。不懂java配置的可以参考一下我前面发过的1-3. SpringBoot基础,Java配置(全注解配置)取代xml配置
如果想保持SpringBoot一些默认MVC特征,同时又想自定义一些MVC配置(包括:拦截器,格式化器,视图控制器,消息转换器等),让一个类实现WebMvcConfigurer,并且添加@Configuration注解,但千万别加@EnableWebMvc注解。
package cn.sysu.ming.config;
import cn.sysu.ming.interceptor.MyInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
}
}
注意,如果配置了debug的化,要在application.properties或者application.yml中修改日志控制级别,logging.level,值为Map结构,key为包,value为级别(info、debug,error等等),这边使用application.yml举个例子
server:
port: 80
logging:
level:
cn.sysu.ming:
info
启动项目,游览器输入url来访问controller方法
博主的坚持 离不开大家关注、评论和点赞,感谢大家支持。护发路上互相扶持!!!
本文地址:https://blog.csdn.net/dogHuaMing/article/details/112093217