springboot静态资源处理,统一日志拦截

静态资源拦截器

对于一些小型的系统,如果要使得项目结构可视化可读性比较好,页面的静态资源管理,路径的管理等都需要有一定规范。

我们先看看路径包含哪些:

1.     jar包内的本地路径,也即服务器容器路径

2.     http的URL路径,即网络请求路径

3.     静态资源存储路径(通过URL请求图片,css等文件路径)

我们来看看springMVC如何处理的

首先,springMVC会通过映射把网络的根路径映射给了DispatcherServlet

然后通过DispatcherServlet做后续处理,这个不做讲解,看springMVC处理流程。

 

我们知道,spring默认访问resources下资源文件,如果要改变目录,需要在配置中指定位置。

若我要把图片等资源进行统一管理起来,放到服务器别的目录下,如何进行映射。

这里只介绍一种方式,关于springboot访问静态资源配置拦截器,也可以是统一日志管理,也可以是登录拦截器等。

 

首先,应该继承springMVC的拦截器配置总类WebMvcConfigurerAdapter,通过注解@Configuration来标识此类重写。

@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {


    @Bean
    LoggerInterceptor  loggerInterceptor(){
        return new LoggerInterceptor();
    }

    @Override
    public  void addResourceHandlers(ResourceHandlerRegistry r){
        System.out.println("5555555555555555555555");
       r.addResourceHandler("/mm/**").addResourceLocations("file:F:/mm/");//网络路径,硬盘存储路径

       super.addResourceHandlers(r);
    }
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
        registry.addInterceptor(new LoggerInterceptor()).addPathPatterns("/*").excludePathPatterns( "/mm/*");
        super.addInterceptors(registry);
    }

}

其中EnableWebMvc注解如果没有特殊处理,可以不用,

 

然后,你可以做一些处理,日志拦截器如下:

public class LoggerInterceptor implements HandlerInterceptor {

   private static final Logger log = LoggerFactory.getLogger(LoggerInterceptor.class);

   @Override
   public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
         throws Exception {
      System.out.println("111111111111111111");
      return true;
   }

   @Override
   public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
         ModelAndView modelAndView) throws Exception {
      System.out.println("222222222222222");
   }

   @Override
   public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
         throws Exception {



      System.out.println("333333333333333333");
   }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值