`

13. 处理静态资源(自定义资源映射)【从零开始学Spring Boot】

阅读更多

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

 

上面我们介绍了Spring Boot 的默认资源映射,一般够用了,那我们如何自定义目录? 
这些资源都是打包在jar包中的,然后实际应用中,我们还有很多资源是在管理系统中动态维护的,并不可能在程序包中,对于这种随意指定目录的资源,如何访问?

自定义目录

以增加 /myres/* 映射到 classpath:/myres/* 为例的代码处理为: 
实现类继承 WebMvcConfigurerAdapter 并重写方法 addResourceHandlers (对于

package org.springboot.sample.config;

 

import org.springboot.sample.interceptor.MyInterceptor1;

import org.springboot.sample.interceptor.MyInterceptor2;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

 

@Configuration

public class MyWebAppConfigurer

        extends WebMvcConfigurerAdapter {

 

    @Override

    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("/myres/**").addResourceLocations("classpath:/myres/");

        super.addResourceHandlers(registry);

    }

 

}

访问myres 文件夹中的test.jpg 图片的地址为 http://localhost:8080/myres/test.jpg 
这样使用代码的方式自定义目录映射,并不影响Spring Boot的默认映射,可以同时使用。

如果我们将/myres/* 修改为 /* 与默认的相同时,则会覆盖系统的配置,可以多次使用 addResourceLocations 添加目录,优先级先添加的高于后添加的。

          

其中 addResourceLocations 的参数是动参,可以这样写 addResourceLocations(“classpath:/img1/”, “classpath:/img2/”, “classpath:/img3/”);

 

使用外部目录

如果我们要指定一个绝对路径的文件夹(如 D:/data/api_files ),则只需要使用 addResourceLocations 指定即可。

// 可以直接使用addResourceLocations 指定磁盘绝对路径,同样可以配置多个位置,注意路径写法需要加上file:

registry.addResourceHandler("/api_files/**").addResourceLocations("file:D:/data/api_files");

 

【视频&交流平台】

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

  

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

分享到:
评论
3 楼 恨灬rumor 2018-06-07  
林祥纤 写道
恨灬rumor 写道
registry.addResourceHandler("x.jpg","login.html").addResourceLocations("classpath:/ftl/");

版主为啥我可以访问x.jpg ,而访问不到html页面?


.html 这个格式比较特殊,可能被拦截住了.. 或者需要配置controller才能进行访问到。



registry.addResourceHandler("/plugin/**","/ftl/**").addResourceLocations("classpath:/plugin/","classpath:/ftl/");我这样配置,通过http://localhost:8081/ftl/login.html 又可以访问,我奇怪啊
2 楼 林祥纤 2018-06-03  
恨灬rumor 写道
registry.addResourceHandler("x.jpg","login.html").addResourceLocations("classpath:/ftl/");

版主为啥我可以访问x.jpg ,而访问不到html页面?


.html 这个格式比较特殊,可能被拦截住了.. 或者需要配置controller才能进行访问到。
1 楼 恨灬rumor 2018-06-01  
registry.addResourceHandler("x.jpg","login.html").addResourceLocations("classpath:/ftl/");

版主为啥我可以访问x.jpg ,而访问不到html页面?

相关推荐

    从零开始学Spring Boot

    1.16 处理静态资源(自定义资源映射) 1.17 Spring Boot定时任务的使用 1.18 Spring Boot使用Druid和监控配置 1.19 Spring Boot使用Druid(编程注入) 1.20 Spring Boot普通类调用bean 1.21 使用模板(thymeleaf-...

    从零开始学Spring Boot1

    1.7 (5)全局异常捕捉【从零开始学Spring Boot】 .23 1.15 (13)处理静态资源(默认资源映射)【从零开始学Spring Boot】 .4

    Spring Boot中文文档.rar

    spring boot中文文档,从安装到部署。 I. Spring Boot文件 1.关于文档 2.获得帮助 3.第一步 4.使用Spring Boot 5.了解Spring Boot功能 6.转向生产 7.高级主题 II。入门 8.介绍Spring Boot ...

    spring boot静态资源部署

    spring boot静态资源部署Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

    Spring Boot学习资料教程.docx

    本教程是简单笔记记录,从零到一学习 Spring Boot。本教程涉及的知识如下: Hell World 注解的使用依赖讲解 配置文件 YAML 配置文件讲解 Profile模式 配置文件优先级 外部配置加载顺序自动配置原理 日志处理 日志...

    狂神spring-security静态资源.zip

    狂神spring-security静态资源.zip

    SpringBoot学习笔记完整教程

    10. Spring boot 静态资源处理 11. Srping boot 实现任务调度 12. Spring boot 普通类调用 Bean 13. spring boot 使用模板引擎 14. Spring boot 集成 JSP 15. Spring boot 集成 servlet 16. Spring boot 集成 ...

    springboot参考指南

    64.13. 启用Undertow的多监听器 xiv. 64.14. 使用Tomcat7 i. 64.14.1. 通过Maven使用Tomcat7 ii. 64.14.2. 通过Gradle使用Tomcat7 xv. 64.15. 使用Jetty8 i. 64.15.1. 通过Maven使用Jetty8 ii. 64.15.2. 通过Gradle...

    想学习的看过来了spring4.0、springboot、springcloud详细视频课程(硅谷)

    03.硅谷学习_SpringCloud_从面试题开始 04.硅谷学习_SpringCloud_微服务是什么 05.硅谷学习_SpringCloud_微服务是什么2 06.硅谷学习_SpringCloud_微服务与微服务架构 07.硅谷学习_SpringCloud_微服务优缺点 08....

    2023最新《Spring Boot基础教程》

    全网内容最全,比收费教程更好的Spring Boot免费教程! 快速入门 Spring Boot 2.x基础教程:版本关系 Spring Boot 2.x基础教程:...Spring Boot 2.x基础教程:Swagger静态文档的生成 Spring Boot 2.x基础教程:找回启动

    狂神说Java的spring boot课程静态资源

    哔哩哔哩app中up主狂神说Java的spring boot课程,资源是在spring boot课程进行讲解的静态资源源代码,没有修改的员工管理系统静态网页

    狂神说SpringSecurity静态资源.rar

    狂神说SpringSecurity静态资源.rar

    SpringSecurity静态资源.rar

    SpringSecurity项目的静态资源

    SpringBoot对静态资源的映射规则

    SpringBoot对静态资源的映射规则 1所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找资源; 1.1引入依赖 2"/**" 访问当前项目的任何资源,都去(静态资源的文件夹)找映射 3欢迎页; 静态资源...

    spring boot 自定义规则访问获取内部或者外部静态资源图片的方法

    主要介绍了spring boot 自定义规则访问获取内部或者外部静态资源图片的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    spring-security静态资源

    spring-security静态资源

    springboot静态资源映射方法讲解

    我们写后端接口时 比如我们需要访问E盘路径下的一个照片 就可以在config里做一个静态资源映射 然后就可以访问了 具体操作如下 比如想访问 E:\\test\\swiperImgs\\ 里面的文件 就可以在config文件里创建一个class ...

    Spring Boot自定义拦截器之后静态资源无法加载的问题(第一版)

    2. 静态资源被拦截 3.从过滤器中去除静态文件 4.静态文件404解决 5.补充一下 6.遗留问题现象 1.自定义拦截器  自定义XXInterceptor实现HandlerInterceptor接口,在发送请求之前拦截,所以在preHandle方法内完善相应...

    libcurl.a静态库(.a文件) android可用,包含(armeabi、x86、arm64-v8a、x86_64)

    libcurl.a静态库(.a文件) android可用,包含(armeabi、x86、arm64-v8a、x86_64) 。基于 curl-7.61.1编译。

Global site tag (gtag.js) - Google Analytics