当前位置: 首页 > article >正文

005-SpringSecurity-Demo 配置外部文件映射

SpringSecurity-Demo 配置外部文件映射一、需求说明二、实现步骤1. 定义配置属性类读取yml配置2. 编写资源映射配置3. application.yml 配置路径可自定义三、原理讲解一看就懂四、使用示例五、路径写法说明1. 相对路径2. Windows 绝对路径3. Linux 绝对路径六、常见问题1. 访问4042. 不想用profile作为URL前缀3. 映射网络路径在 Spring Boot 项目开发中我们经常需要上传图片、文档等文件并希望通过浏览器地址直接访问比如头像、附件预览。但直接把文件存在项目内部会导致打包过大、更新不便所以最佳实践是文件存在外部文件夹通过 Spring MVC 资源映射实现外网访问。本篇博客就带你一步步实现外部文件目录 → 浏览器在线访问完全适配 Spring Boot 3.2.4 JDK 21代码可直接复制用于生产环境。一、需求说明我们要实现的功能非常简单实用把文件存在项目根目录的./file文件夹实际使用可配置其它目录通过地址http://localhost:5826/profile/xxx.png直接访问图片路径可配置不写死代码二、实现步骤代码已推送至 Gitee 仓库springdecurity-demo1. 定义配置属性类读取yml配置专门用来读取外部配置代码解耦、规范优雅。packagecom.junjiu.springboot3.config.properties;importlombok.Data;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.stereotype.Component;/** * program: security-demo * ClassName: JunjiuCustomProperties * description: * * author: 君九 * create: 2026-04-03 14:35 * version: 1.0 **/DataComponentConfigurationProperties(prefixjunjiu.custom)publicclassJunjiuCustomProperties{/** * 外部资源存储路径 * 例如./file */privateStringresourcePath;}2. 编写资源映射配置继承WebMvcConfigurer重写addResourceHandlers实现外部文件夹映射到URL。packagecom.junjiu.springboot3.config;importcom.junjiu.springboot3.config.properties.JunjiuCustomProperties;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;/** * 外部资源映射配置 * 实现外部文件夹 - 浏览器URL访问 */ConfigurationpublicclassResourceConfigimplementsWebMvcConfigurer{AutowiredprivateJunjiuCustomPropertiesjunjiuCustomProperties;OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){// 从配置文件读取路径StringresourcePathjunjiuCustomProperties.getResourcePath();// 确保路径以 / 结尾避免拼接错误if(!resourcePath.endsWith(/)){resourcePath/;}System.out.println(外部资源路径resourcePath);// 映射规则// 浏览器访问 /profile/** → 找本地 file:xxx 目录registry.addResourceHandler(/profile/**).addResourceLocations(file:resourcePath);}}3. application.yml 配置路径可自定义junjiu:custom:resource-path:./file# 相对路径项目根目录下的 file 文件夹三、原理讲解一看就懂registry.addResourceHandler(/profile/**).addResourceLocations(file:resourcePath);作用当你访问http://localhost:5826/profile/avatar.jpgSpring Boot 就会去项目根目录/file/avatar.jpg找图片找到就直接显示找不到返回404✅ 支持图片png/jpg/gif文档pdf/txt视频mp4音频mp3四、使用示例在项目根目录创建file文件夹放入一张图片xr.jpg启动项目浏览器访问http://localhost:5826/profile/xr.jpg✅ 直接显示图片五、路径写法说明1. 相对路径resource-path:./file表示项目根目录/file2. Windows 绝对路径resource-path:D:/upload/file3. Linux 绝对路径resource-path:/home/server/upload六、常见问题1. 访问404检查文件夹是否创建检查文件名大小写检查路径是否以/结尾重启项目2. 不想用profile作为URL前缀修改这里即可addResourceHandler(/files/**)访问地址变成http://localhost:5826/files/test.jpg3. 映射网络路径支持但需要权限和共享目录。代码已推送至 Gitee 仓库springdecurity-demo若有转载请标明出处

相关文章:

005-SpringSecurity-Demo 配置外部文件映射

SpringSecurity-Demo 配置外部文件映射一、需求说明二、实现步骤1. 定义配置属性类(读取yml配置)2. 编写资源映射配置3. application.yml 配置(路径可自定义)三、原理讲解(一看就懂)四、使用示例五、路径写…...

LeetCode--454.四数相加 II(哈希表)

题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < n nums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff1a;num…...

Notepad++ 式轻量开发体验:在PyTorch 2.8容器内配置高效命令行环境

Notepad 式轻量开发体验&#xff1a;在PyTorch 2.8容器内配置高效命令行环境 1. 为什么选择轻量级开发环境&#xff1f; 对于习惯了Notepad这类轻量编辑器的开发者来说&#xff0c;重型IDE往往显得臃肿且启动缓慢。特别是在云端深度学习开发场景中&#xff0c;PyTorch容器环境…...

MogFace人脸检测模型-WebUI多场景:儿童早教APP中注意力区域动态追踪

MogFace人脸检测模型在儿童早教APP中的实战应用&#xff1a;注意力区域动态追踪 1. 引言&#xff1a;从“看见”到“理解”&#xff0c;AI如何守护孩子的专注力&#xff1f; 想象这样一个场景&#xff1a;在儿童早教APP的互动学习环节&#xff0c;一个5岁的孩子正跟着屏幕上的…...

直播技术:B站第三方推流方案的实现与应用探索

直播技术&#xff1a;B站第三方推流方案的实现与应用探索 【免费下载链接】bilibili_live_stream_code 用于在准备直播时获取第三方推流码&#xff0c;以便可以绕开哔哩哔哩直播姬&#xff0c;直接在如OBS等软件中进行直播&#xff0c;软件同时提供定义直播分区和标题功能 项…...

3步掌握OCAT:OpenCore配置效率提升300%的GUI管理方案

3步掌握OCAT&#xff1a;OpenCore配置效率提升300%的GUI管理方案 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore&#xff08;OCAT&#xff09; 项目地址: https://gitcode.com/gh_mirrors/oc/OCAuxiliaryTools OCAuxiliaryTools&…...

从零搭建stm32物联网节点:基于快马AI生成温室监测系统实战代码

最近在做一个智能温室监测的小项目&#xff0c;正好用到了InsCode(快马)平台来生成STM32的代码框架&#xff0c;整个过程比我预想的顺利很多。这里记录下整个实现思路和关键点&#xff0c;给有类似需求的开发者参考。 项目需求分析 这个温室监测节点需要实现三个核心功能&#…...

5分钟构建跨语言金融数据API:AKTools如何打破Python生态壁垒

5分钟构建跨语言金融数据API&#xff1a;AKTools如何打破Python生态壁垒 【免费下载链接】aktools AKTools is an elegant and simple HTTP API library for AKShare, built for AKSharers! 项目地址: https://gitcode.com/gh_mirrors/ak/aktools 在量化金融和数据分析领…...

ai赋能linux开发:让快马智能生成带参数解析与错误处理的图片批量处理脚本

用AI助手快速打造Linux图片批量处理工具 最近在整理个人照片库时&#xff0c;遇到了一个很实际的需求&#xff1a;需要把散落在不同文件夹的图片统一转换成PNG格式&#xff0c;同时调整尺寸以便上传到网站。作为一个经常和Linux打交道的开发者&#xff0c;我本能地想到写个脚本…...

wps的VBA小tips1

在WPS/Excel的JS宏&#xff08;以及VBA&#xff09;里&#xff0c; Value2 是比 Value 更常用、更可靠的属性&#xff0c;主要有这几个核心原因&#xff1a;1. 避免格式干扰- Value 会受单元格显示格式影响&#xff1a;如果单元格设置了日期、货币、百分比等格式&#xff0c…...

实战指南:基于快马平台与mcp协议开发可部署的智能个人助理

最近在做一个智能个人助理项目&#xff0c;正好用到了MCP协议和InsCode(快马)平台&#xff0c;整个过程特别顺畅&#xff0c;分享下我的实战经验。 项目架构设计 这个智能助理主要分为三部分&#xff1a;前端交互界面、后端逻辑处理层和MCP工具集成层。前端用React框架实现聊天…...

利用快马AI平台,十分钟快速生成企业网站响应式原型

最近在帮朋友的公司搭建官网&#xff0c;发现传统建站流程实在太耗时——从设计到开发至少一两周起步。尝试用InsCode(快马)平台的AI生成功能后&#xff0c;居然10分钟就搞定了响应式网站原型&#xff01;分享下这个高效流程&#xff1a; 明确需求框架 企业官网最基础的结构包括…...

进程间通信:消息队列、信号量与内核管理

一、System V 消息队列消息队列 -> OS维护了一个队列 -> 通过队列的形式&#xff0c;让不同进程之间看到同一份资源消息队列&#xff0c;提供了一种&#xff0c;一个进程给另一个进程发送有类型数据块的方式&#xff01;每个数据块都被认为是有一个类型&#xff0c;接收者…...

LightOnOCR-2-1B实战体验:上传图片,秒出文字,简单高效

LightOnOCR-2-1B实战体验&#xff1a;上传图片&#xff0c;秒出文字&#xff0c;简单高效 1. 从“想法”到“文字”&#xff0c;只需要三步 你有没有过这样的经历&#xff1f;手机拍了一张会议白板的照片&#xff0c;想把上面的要点整理成文档&#xff0c;结果对着照片一个字…...

初创公司 0 代码上线 App:UXbot 全流程实战

非技术背景的初创公司创始人&#xff0c;可以使用 UXbot 这款 AI 无代码应用构建工具&#xff0c;在无需设计师和工程师介入的情况下&#xff0c;独立完成从产品需求描述到 Android APK 真机安装的完整链路。整个过程分为 5 个步骤&#xff0c;核心耗时约半天&#xff0c;输出物…...

如何高效配置无人机电子调速器:专业级ESC配置工具实战指南

如何高效配置无人机电子调速器&#xff1a;专业级ESC配置工具实战指南 【免费下载链接】esc-configurator A Web-App to flash your BLHeli_S and AM32 based ESCs from the browser using the Web-Serial API. 项目地址: https://gitcode.com/gh_mirrors/es/esc-configurato…...

3个秘诀让黑苹果EFI配置效率提升100倍:告别拆机与代码的烦恼

3个秘诀让黑苹果EFI配置效率提升100倍&#xff1a;告别拆机与代码的烦恼 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 当你对着教程里满屏的ACPI补丁…...

深度揭秘ControlNet-v1-1 FP16模型:5大实战技巧突破SD1.5显存瓶颈

深度揭秘ControlNet-v1-1 FP16模型&#xff1a;5大实战技巧突破SD1.5显存瓶颈 【免费下载链接】ControlNet-v1-1_fp16_safetensors 项目地址: https://ai.gitcode.com/hf_mirrors/comfyanonymous/ControlNet-v1-1_fp16_safetensors ControlNet-v1-1_fp16_safetensors作…...

【C++初阶】手撕C++ string类

&#x1f3ac; 博主名称&#xff1a;键盘敲碎了雾霭 &#x1f525; 个人专栏: 《C语言》《数据结构》 《C》 ⛺️指尖敲代码&#xff0c;雾霭皆可破 文章目录 一、前言&#xff1a;为什么要手写string类&#xff1f;二、整体架构设计2.1 成员变量设计2.2 类结构总览 三、核心构…...

实战指南:基于快马AI构建可部署的z-library全栈应用

实战指南&#xff1a;基于快马AI构建可部署的z-library全栈应用 最近在尝试搭建一个电子图书馆应用&#xff0c;类似z-library的功能。这个项目涉及用户系统、支付、推荐等多个模块&#xff0c;对于个人开发者来说确实有点复杂。不过我发现使用InsCode(快马)平台可以大大简化开…...

用快马ai快速原型一个永久在线crm网站,验证你的产品思路

最近在验证一个CRM产品的市场可行性&#xff0c;需要快速搭建一个能永久在线的基础原型。传统开发流程从环境搭建到功能实现至少需要一周&#xff0c;而通过InsCode(快马)平台的AI辅助&#xff0c;我用不到半天就完成了核心功能验证。以下是具体实践过程&#xff1a; 明确最小可…...

全栈实战:在快马平台从零到一开发一个可部署的极客日报应用

今天想和大家分享一个最近在InsCode(快马)平台上完成的实战项目——极客日报全栈应用开发。这个项目从零开始&#xff0c;完整实现了前后端分离的Web应用开发流程&#xff0c;特别适合想系统性学习全栈开发的同学参考。 项目架构设计 整个应用采用经典的三层架构&#xff1a;前…...

ai开发ai:借助快马平台智能体辅助完成openclaw千问模型的深度配置与优化

最近在折腾OpenClaw配置千问模型的项目&#xff0c;发现整个过程特别适合用AI来辅助开发。这种"用AI开发AI应用"的循环特别有意思&#xff0c;今天就来分享下我的实践心得。 核心配置脚本的AI协作开发 配置OpenClaw最头疼的就是那些复杂的错误处理逻辑。我直接在In…...

【单片机】STM32晶振引脚不连晶振时的做法

STM32不使用外部晶振时,OSC_IN和 OSC_OUT接法&#xff1a;1、对于100脚或者144脚的产品&#xff0c;OSC_IN应接地&#xff0c;OSC_OUT应悬空&#xff1b;2、对于少于100脚的产品&#xff0c;有两种接法&#xff1a;OSC_IN和OSC_OUT分别通过10K电阻接地&#xff0c;此方法可提高…...

大模型领域岗位梯队详解:小白程序员转型宝典,速收藏![特殊字符]

大模型领域岗位梯队详解&#xff1a;小白程序员转型宝典&#xff0c;速收藏&#xff01;&#x1f525; 本文详细解析了大模型领域的岗位梯队&#xff0c;从底层架构到应用开发&#xff0c;涵盖了预训练、基础设施、模型优化、后训练、多模态等多个方向。文章强调了当前大模型领…...

收藏 | RAG核心认知:从“检索+生成”到“实时智能”,小白也能秒懂大模型技术范式!

收藏 | RAG核心认知&#xff1a;从“检索生成”到“实时智能”&#xff0c;小白也能秒懂大模型技术范式&#xff01; RAG&#xff08;检索增强生成&#xff09;通过动态联动外部知识库与大语言模型&#xff08;LLM&#xff09;&#xff0c;构建“实时信息输入-精准内容输出”闭…...

收藏必备!小白程序员轻松入门大模型,解锁医学AI新技能

收藏必备&#xff01;小白程序员轻松入门大模型&#xff0c;解锁医学AI新技能 大语言模型在医疗健康领域应用初见成效&#xff0c;但存在知识体系固化的局限。本文介绍了检索增强生成&#xff08;RAG&#xff09;技术&#xff0c;该技术模拟医生查阅最新文献的工作逻辑&#xf…...

零基础也能入行!大模型AI学习指南,收藏这份进阶路线图

零基础也能入行&#xff01;大模型AI学习指南&#xff0c;收藏这份进阶路线图 本文为AI大模型新手提供了一份系统化学习路线图&#xff0c;从认知重塑、基础准备、核心知识入门、动手实践到定位方向与求职准备&#xff0c;详细拆解了学习步骤与关键点。强调先应用后理论、重实践…...

大模型应用落地:新手/程序员必备五类关键技术选型指南(收藏版)

大模型应用落地&#xff1a;新手/程序员必备五类关键技术选型指南&#xff08;收藏版&#xff09; 本文从产品经理视角出发&#xff0c;详细介绍了大模型应用落地的五类关键技术&#xff08;Prompt、RAG、Workflow、Agent、模型微调&#xff09;及其适用场景。强调技术选型应遵…...

Nano Banana Pro图像生成与编辑技术解析

介绍 Nano Banana Pro 不久前&#xff0c;发布了Nano Banana&#xff08;Gemini 2.5 Flash图像模型&#xff09;。从修复旧照片到生成微型模型&#xff0c;Nano Banana在图像编辑领域迈出了一大步&#xff0c;让普通创作者能够表达自己的创造力。今天&#xff0c;推出Nano Bana…...