SpringBoot访问外部文件及默认路由问题

目录
  • SpringBoot访问外部文件及默认路由
    • 1 新增配置类
    • 2 访问
  • springboot访问项目外部文件配置及失效问题
    • springboot映射项目外部资源
    • 下面是访问结果(请忽略掉乱码问题)

SpringBoot访问外部文件及默认路由

1 新增配置类

package com.pibigstar.common.config;

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.WebMvcConfigurer;

import com.pibigstar.common.Constant;

@Configuration
public class WebConfig implements WebMvcConfigurer{

	/**
	 * 访问外部文件配置,访问D盘下文件
	 */
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		//配置server虚拟路径,handler为jsp中访问的目录,locations为files相对应的本地路径
		registry.addResourceHandler("/files/**").addResourceLocations("file:///D:upload/");
	}
	/**
	 *	配置默认路由
	 */
	@Override
    public void addViewControllers(ViewControllerRegistry registry) {
        //将浏览器的默认行为重定向到主页
        registry.addViewController("/").setViewName("redirect:/index.htm");
        //测试页面
        registry.addViewController("/test.htm").setViewName("/test.jsp");
	}
}

2 访问

我们将test.jpg文件上传到D盘的upload文件夹后,那么在页面端访问则通过:localhost:8080/files/test.jpg

springboot访问项目外部文件配置及失效问题

springboot映射项目外部资源

配置文件:

cbs:
    filePath: file:///

配置类:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

/**
 * @description:配置访问外部文件
 * @author: Administrator
 * @date: 2019-07-10 16:17
 */

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {

    @Value("${cbs.filePath}")
    private String filePath;//文件地址

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        System.out.println("文件路径=="+filePath);
        registry.addResourceHandler("/appFile/**").addResourceLocations(filePath);
        super.addResourceHandlers(registry);
    }
}

地址:http://localhost:8080/appFile/D:/tmp/app/1.txt

访问的时候把 http://localhost:8080/appFile/ 替换成 file:///

也就是file:///D:/tmp/app/1.txt

下面是访问结果(请忽略掉乱码问题)

但是不知道为什么配置类继承WebMvcConfigurerAdapter和实现WebMvcConfigurer 接口都没有用,继承 WebMvcConfigurationSupport类才生效

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot根据目录结构自动生成路由前缀的实现代码

    目录 前言 具体实现 配置文件指定基础包 自动补全路由前缀处理类 自动补全路由前缀配置类 测试类 测试 前言 本文介绍如何根据目录结构给RequestMapping添加路由前缀(覆盖RequestMappingHandlerMapping中的getMappingForMethod方法,修改其中的Url),如下图的实际访问路径为:/v1/test/test. 具体实现 配置文件指定基础包 application.properties api-package = com.coisini.spring

  • 使用SpringBoot获取所有接口的路由

    目录 SpringBoot获取所有接口的路由 Springboot部分路由生效 问题记录 SpringBoot获取所有接口的路由 @Autowired WebApplicationContext applicationContext; @RequestMapping(value = "v1/getAllUrl", method = RequestMethod.POST) public Object getAllUrl() { RequestMappingHandlerMapping m

  • 关于springboot中nacos动态路由的配置

    目录 nacos动态路由的配置 1.作为一个动态路由维护管理的类 2.基于Nacos动态配置路由服务 3.yml配置 4. nacos网关配置 5.最后:我建的是 Springboot配置Nacos出现的问题 报错信息 具体如下 nacos动态路由的配置 什么都不说了,springboot-nacos 不懂得的下面自行学习啦我直接贴下代码! 首先... 我自己有个服务器.在无聊之时写的代码,主要是通过网关来调用接口所以有了下面的代码. 1.作为一个动态路由维护管理的类 @Service publ

  • SpringBoot自定义路由覆盖实现流程详解

    目录 背景 设计 实现 注解定义 注解扫描及管理 自定义RequestMappingHandlerMapping 注册RequestMappingHandlerMapping 使用示例 背景 公司最近有一个项目二期需要对一些功能进行改造,涉及部分框架内置业务接口个性化定制,兼容老接口功能并且增加一部分新的数据返回,由于前端调用这些接口分布较多且较为零碎,修改测试成本较大,所以打算在框架层面提供路由覆盖功能,加快项目进度减少无技术含量的修改带来的系统风险 设计 提供自定义注解指定需要覆盖的路由及新

  • SpringBoot访问外部文件及默认路由问题

    目录 SpringBoot访问外部文件及默认路由 1 新增配置类 2 访问 springboot访问项目外部文件配置及失效问题 springboot映射项目外部资源 下面是访问结果(请忽略掉乱码问题) SpringBoot访问外部文件及默认路由 1 新增配置类 package com.pibigstar.common.config; import org.springframework.context.annotation.Configuration; import org.springfram

  • 使用VBS访问外部文本文件一些方法和脚本实例代码

    处理文件用到的常量有:ForReading = 1 ,ForWriting=2,ForAppending=8,用于的操作分别是读/写和追加,都要在使用之前用VBS Const来声明.常用于处理文本文件的方法有:Read(var)-读var个字符,ReadLine-读一行,ReadAll-读整个文件内容,SkipLine-跳过本行指向下一行,Write(var)-把字符串var写入文件,WriteLine(var)-把字符串var和换行符写入文件,WriteBlankLines(n)-写入n个换行

  • Spring-Boot 访问外部接口的方案总结

    目录 一.简介 二.Spring-Boot项目中访问外部接口 2.1 方案一 采用原生的Http请求 2.2 方案二 采用Feign进行消费 2.3.方案三 采用RestTemplate方法 参考文献 一.简介 在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求,针对这一需求目前存在着三种解决方案,下面将对这三种方案进行整理和说明. 二.Spring-Boot项目中访问外部接口 2.1 方案一 采用原生的Http请求 在代码中采用原生的http请求

  • springboot如何通过URL方式访问外部资源

    目录 springboot通过URL方式访问外部资源 第一种 第二种 springboot通过URL访问本地文件 springboot通过URL方式访问外部资源 遇到这个问题时翻阅百度,无外乎就是两种方式 第一种 在springboot 2.1.8中该方法已过时 第二种 这个方法是可以实现通过url访问到指定目录下的文件,但是使用spring.resources.static-locations这个配置会覆盖掉SpringBoot默认的静态资源文件夹,项目的静态资源全都无法访问,而spring.

  • SpringBoot上传文件并配置本地资源映射来访问文件的实例代码

    1.准备工作 1.新建一个SpringBoot项目加上web依赖, 所有依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.thymeleaf</groupId&

  • 详解关于SpringBoot的外部化配置使用记录

    更新: 工作中突然想起来,关于Yaml的使用,并不属于Spring的范畴,是org.yaml.snakeyaml处理的.所以yaml的使用应该参考官方,不过貌似打不开... Spring利用snakeyaml将配置解析成PropertySource,然后写入到Environment,就能使用了 记录下使用SpringBoot配置时遇到的一些麻烦,虽然这种麻烦是因为知识匮乏导致的. 记录下避免一段时间后自己又给忘记了,以防万一. 如果放到博客里能帮助到遇到同样问题的同志,自是极好! SpringB

  • JQuery Ajax通过Handler访问外部XML数据的代码

    JQuery的使用非常简单,我们只需要从其官方网站上下载一个脚本文件并引用到页面上即可,然后你就可以在你的脚本代码中任意使用JQuery提供的对象和功能了. 在JQuery中使用Ajax方法异步获取服务器资源非常简单,读者可以参考其官方网站上提供的例子http://api.jquery.com/category/ajax/.当然,作为客户端脚本,JQuery也会遇到跨域访问资源的问题,什么是跨域访问呢?简单来说就是脚本所要访问的资源属于网站外部的资源,脚本所在的位置和资源所在的位置不在同一区域.

  • SpringBoot上传文件到本服务器 目录与jar包同级问题

    前言 看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了. 当你使用tomcat发布项目的时候,上传文件存放会变得非常简单,因为你可以随意操作项目路径下的资源.但是当你使用SpringBoot的jar包发布项目的时候,你会发现,你不能像以前一样操作文件了.当你使用File file = new File()的时候根本不知道这个路径怎么办.而且总不能很小的项目也给它构建一个文件服务器吧.所以这次就来解决这样的问题. 不想知道细节的,可以直接跳转到最后封装的部分,里面

  • springboot实现多文件上传功能

    本文实现springboot的多文件上传,首先创建一个springboot项目,添加spring-boot-starter-web依赖. 然后在resources下的static文件夹下创建uploads.html文件,文件内容如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>多文件上传</title&g

  • springboot访问template下的html页面的实现配置

    一.template下文件不允许直接访问 1.查资料得知:springboot项目默认是不允许直接访问template下的文件的,是受保护的. 所以想访问template下的html页面,我们可以配置视图解析器. 2.如果想要用视图去展示,应该要设置好视图展示页面,比如说用一个模板语言来接收返回的数据(thymeleaf或者freemarker等), 也可以用jsp接收,但是SpringBoot官方是不推荐用jsp的,而是建议使用thymeleaf作为模板语言,这里我以thymeleaf为例.

随机推荐