请求日志的三种实现方式
1.filter
1.自定义filter @configuration
public class TimeFilter implements Filter {
@Override
public void destroy() {
System.err.println("time filter destory...");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.err.println("=======time filter start======");
long startTime = new Date().getTime();
chain.doFilter(request, response); //执行其他过滤器链
System.err.println("time filter 耗时:"+(new Date().getTime()-startTime));
System.err.println("=======time filter end=======");
}
@Override
public void init(FilterConfig arg0) throws ServletException {
System.err.println("time filter init...");
}
2.引用三方bean
@Bean
public FilterRegistrationBean timeFilter(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
TimeFilter timeFilter = new TimeFilter();
filterRegistrationBean.setFilter(timeFilter);
//指定要过滤的url
List<String> urls = new ArrayList<>();
urls.add("/*");
filterRegistrationBean.setUrlPatterns(urls);
return filterRegistrationBean;
}
2.aspect
@Aspect注解(单独依赖)
定义切点
引用,获取point里面的各种信息封装