zoukankan      html  css  js  c++  java
  • spring boot mvc系列-静态资源配置与MappingHandler拦截器

    静态资源配置

    Spring Boot 默认将 /** 所有访问映射到以下目录:

    classpath:/smetic
    classpath:/public
    classpath:/resources
    classpath:/MEme-INF/resources

    如果需要自定义映射目录,可以继承WebMvcConfigurerAdapter或WebMvcConfigurationSupport,以后者为例,如下:

    @Configuration
    public class WebConfig extends WebMvcConfigurationSupport {
        
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            //将所有/smetic/** 访问都映射到classpath:/smetic/ 目录下
            registry.addResourceHandler("/js/**").addResourceLocations("classpath:/smetic/js/");
            registry.addResourceHandler("/resources/**").addResourceLocations("classpath:/smetic/resources/");
            registry.addResourceHandler("/images/**").addResourceLocations("classpath:/smetic/images/");
            registry.addResourceHandler("/css/**").addResourceLocations("classpath:/smetic/css/");
            registry.addResourceHandler("/font/**").addResourceLocations("classpath:/smetic/font/");
            registry.addResourceHandler("/themes/**").addResourceLocations("classpath:/smetic/themes/");
        }
    
    }

    如果使用了拦截器HandlerInterceptor,好像覆盖addResourceHandlers方法,似乎excludePathPatterns并没有生效,不覆盖的话前台会报404。

    拦截器配置 

    同样在WebConfig中配置,如下:

    package com.xxx.me.aop.config;
    
    import org.springframework.context.annometion.Bean;
    import org.springframework.context.annometion.Configuration;
    import org.springframework.web.servlet.config.annometion.InterceptorRegistry;
    import org.springframework.web.servlet.config.annometion.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annometion.WebMvcConfigurationSupport;
    
    import com.xxx.me.interceptor.SecurityInteceptor;
    
    @Configuration
    public class WebConfig extends WebMvcConfigurationSupport {
        // 需要注意的是HandlerInteceptor必须通过@Bean配置,直接添加@new SecurityInteceptor()会导致依赖类未注入
        @Bean
        SecurityInteceptor securityInteceptor() {
            return new SecurityInteceptor();
        }
    
        @Override
        protected void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(securityInteceptor()).excludePathPatterns("/css/**", "/js/**", "/font/**", "/images/**", "/resources/**", "/themes/**");
            super.addInterceptors(registry);
        }
    }
  • 相关阅读:
    安装libgl1-mesa-dri:i386重启后黑屏问题解决
    adb连接安卓模拟器
    编译andorid内核
    android镜像文件说明
    ubantu14.04配置android编译环境
    UDP组播相关
    eclipse中如何向开源中国(码云)上传代码
    How to copy a java.util.List into another java.util.List
    Windows中.exe程序的启动过程和C/C++运行时库
    GEF调色板中的多级树结构
  • 原文地址:https://www.cnblogs.com/zhjh256/p/10017621.html
Copyright © 2011-2022 走看看