美文网首页
spring boot 内置tomcat设置虚拟目录 ,htt

spring boot 内置tomcat设置虚拟目录 ,htt

作者: object_cheng | 来源:发表于2017-10-17 14:20 被阅读928次

    需求是用户上传的照片或视频,比如我要保存到 D:/resource/1_user.jpg

    第一步:

    在application.yml 中 spring.resources.static-locations:  中加入一个 file:D/resource/
    

    第二步:Shiro的配置中

    filterMap.put("/resource/**", "anon");
    

    第三步:写一个配置类WebMvcConfig

    
    @Configuration
    public class WebMvcConfig extends WebMvcConfigurerAdapter {
        @Autowired
        private AuthorizationInterceptor authorizationInterceptor;
        @Autowired
        private LoginUserHandlerMethodArgumentResolver loginUserHandlerMethodArgumentResolver;
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/resource/**").addResourceLocations("file:D:/resource/");
        }
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(authorizationInterceptor).addPathPatterns("/api/**");
        }
        @Override
        public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
            argumentResolvers.add(loginUserHandlerMethodArgumentResolver);
        }
    }
    
    

    第四步:在controller中 这样传入userID就可以直接访问这张图片

    
        @RequestMapping(value = "/user/{userId}", method = RequestMethod.GET)
        @AuthIgnore
        public void getUserIcon(@PathVariable("userId") String userId,HttpServletResponse response){
            UserEntity entity = userService.queryObject(userId);
            try {
                response.sendRedirect(entity.getUserIcon()); //resource/1_user.jpg
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
    

    相关文章

      网友评论

          本文标题:spring boot 内置tomcat设置虚拟目录 ,htt

          本文链接:https://www.haomeiwen.com/subject/zurduxtx.html