• @EnableWebMvc WebMvcConfigurer CorsConfig


    package me.zhengjie.core.config;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    /**
     * 跨域请求
     *
     * @author jie
     * @date 2018-11-30
     */
    @Configuration
    @EnableWebMvc
    public class CorsConfig implements WebMvcConfigurer {
    
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            //设置允许跨域的路径
            registry.addMapping("/**")
                    //设置允许跨域请求的域名
                    .allowedOrigins("*")
                    //是否允许证书 不再默认开启
                    .allowCredentials(true)
                    //设置允许的方法
                    .allowedMethods("*")
                    //跨域允许时间
                    .maxAge(3600);
        }
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/").setCachePeriod(0);
        }
    }

    精通SpringBoot——第三篇:详解WebMvcConfigurer接口

     https://yq.aliyun.com/articles/617307

    使用WebMvcConfigurer配置SpringMVC

    https://www.jianshu.com/p/52f39b799fbb

    详解@EnableWebMvc

    https://www.cnblogs.com/lvbinbin2yujie/p/10624584.html

    package org.linlinjava.litemall.wx.config;
    
    import org.linlinjava.litemall.wx.annotation.support.LoginUserHandlerMethodArgumentResolver;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.method.support.HandlerMethodArgumentResolver;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    import java.util.List;
    
    @Configuration
    public class WxWebMvcConfiguration implements WebMvcConfigurer {
        @Override
        public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
            argumentResolvers.add(new LoginUserHandlerMethodArgumentResolver());
        }
    }
    package org.linlinjava.litemall.wx.annotation.support;
    
    import org.linlinjava.litemall.wx.annotation.LoginUser;
    import org.linlinjava.litemall.wx.service.UserTokenManager;
    import org.springframework.core.MethodParameter;
    import org.springframework.web.bind.support.WebDataBinderFactory;
    import org.springframework.web.context.request.NativeWebRequest;
    import org.springframework.web.method.support.HandlerMethodArgumentResolver;
    import org.springframework.web.method.support.ModelAndViewContainer;
    
    
    public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
        public static final String LOGIN_TOKEN_KEY = "X-Litemall-Token";
    
        @Override
        public boolean supportsParameter(MethodParameter parameter) {
            return parameter.getParameterType().isAssignableFrom(Integer.class) && parameter.hasParameterAnnotation(LoginUser.class);
        }
    
        @Override
        public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer container,
                                      NativeWebRequest request, WebDataBinderFactory factory) throws Exception {
    
    //        return new Integer(1);
            String token = request.getHeader(LOGIN_TOKEN_KEY);
            if (token == null || token.isEmpty()) {
                return null;
            }
    
            return UserTokenManager.getUserId(token);
        }
    }
  • 相关阅读:
    tcpdump使用技巧
    linux: 系统调用
    linux命令:rsync, 同步文件和文件夹的命令
    编译kernel:make Image uImage与zImage的区别
    linux下操作gpio寄存器的方法
    Linux输入子系统(Input Subsystem)
    Android电源管理基础知识整理
    【Android休眠】之Android休眠机制
    拓扑排序入门(真的很简单)
    有向无环图的拓扑排序
  • 原文地址:https://www.cnblogs.com/tonggc1668/p/11215932.html
Copyright © 2020-2023  润新知