【小白入门】一张项目结构图搞懂 SpringBoot 后端目录!每个文件夹到底干啥用?再也不懵!
文章目录前言一、先看整体项目树二、根目录文件逐个讲解1. pom.xml ⭐【整个项目最重要文件】2. target 文件夹 【千万不要在这里写代码】3. mvnw / mvnw.cmd4. .gitignore5. .idea三、src目录后端开发主战场3.1 src/main/java 【Java代码层】✅ BadHabbitApplication.java —— 项目启动类✅ entity 实体包模型层✅ mapper 数据访问层DAO层✅ controller 控制器接口层✅ config 配置包3.2 src/main/resources 资源文件夹✅ application.yml ⭐核心配置文件✅ mapper 文件夹✅ static 静态资源文件夹✅ templates四、完整请求链路带你打通前后端流程五、新手开发规范总结避坑指南六、写在最后前言很多刚学Java后端的同学打开别人的SpringBoot项目直接一脸懵.idea、src、target、controller、mapper……一堆文件夹密密麻麻不知道哪个能改、哪个碰都不能碰不知道代码写在哪分不清接口、数据库代码放哪里新建功能不知道该创建什么类今天拿一套最基础、最常用的SpringBoot MyBatis实战项目带大家拆解目录结构。看完这篇你拿到任何同款后端项目一眼看懂每个文件夹的职责告别“瞎复制代码”项目架构标准MVC后端项目提供接口给前端页面/小程序使用一、先看整体项目树bad_habbit # 项目根文件夹 ├── .idea # IDEA编辑器配置 ├── .mvn # maven自动化构建相关 ├── src # 【核心源代码目录我们99%代码写在这里】 │ └── main │ ├── java # Java业务代码 │ │ └── com.example.bad_habbit │ │ ├── config # 全局配置类 │ │ ├── controller # 接口控制器前后端交互入口 │ │ ├── entity # 数据库实体类 │ │ ├── mapper # 数据库操作接口 │ │ └── BadHabbitApplication # 项目启动类 │ └── resources # 配置文件、SQL映射、静态资源 │ ├── application.yml # SpringBoot核心配置文件 │ ├── mapper # Mybatis SQL文件 │ ├── static # 静态页面(html/js/css/图片) │ └── templates # 模板页面较少用 ├── test # 单元测试目录 ├── target # 编译输出文件夹 ├── pom.xml # Maven项目核心配置 ├── .gitignore # Git忽略配置 ├── mvnw/mvnw.cmd # Maven启动脚本二、根目录文件逐个讲解1. pom.xml ⭐【整个项目最重要文件】Maven项目的灵魂作用管理项目所有依赖包。你项目想要连接MySQL、使用MyBatis、SpringBoot框架全部都需要在这个文件引入依赖。简单理解你想要什么工具就在pom.xml里面“申请”Maven自动帮你下载对应的jar包。2. target 文件夹 【千万不要在这里写代码】执行项目编译后自动生成。Java源代码会被编译成.class文件最终打包的jar包也在这里。程序真正运行的时候执行的就是target里面编译后的代码。常见坑修改代码不生效很多人误改target内文件重启项目直接覆盖附带目录里hs_err_pidxxx.log文件JVM崩溃日志如果程序莫名闪退可以打开日志排查问题。3. mvnw / mvnw.cmdMaven包装脚本。正常开发我们电脑安装了Maven基本用不到如果别人电脑没有配置Maven可以直接运行这个脚本自动下载maven构建项目。mvnwMac/Linux系统mvnw.cmdWindows系统4. .gitignoreGit版本控制忽略清单。写在这里的文件/文件夹执行代码提交时不会上传到Gitee/GitHub。典型配置忽略target、.idea缓存文件避免上传大量无用缓存。5. .ideaIDEA开发工具自动生成的文件夹保存你的界面布局、运行配置、代码索引。和业务代码无关上传代码一般都会忽略。三、src目录后端开发主战场src source源代码我们日常写业务代码全部在这个文件夹分为两大块src/main正式环境运行的业务代码src/test单元测试代码写测试用例测试接口、方法3.1 src/main/java 【Java代码层】包路径com.example.bad_habbit✅ BadHabbitApplication.java —— 项目启动类整个SpringBoot项目唯一入口带有SpringBootApplication核心注解。右键运行这个类的main方法后端服务直接启动开启端口等待前端发送请求。✅ entity 实体包模型层存放实体类比如示例里Habbit.java规则一个类对应数据库一张表类的属性对应数据表字段。作用数据库查询出来的数据全部封装到实体对象中方便代码读取、传递数据。别名POJO、实体、数据表映射类。✅ mapper 数据访问层DAO层里面HabbitMapper是Java接口职责定义操作数据库的方法新增、删除、修改、查询。⚠️重点接口不写SQL实现SQL语句统一写在 resources/mapper对应的xml文件由MyBatis框架自动实现。✅ controller 控制器接口层前后端交互的大门前端网页、小程序、APP发起http请求都会访问Controller里面定义的接口地址。简单流程接收前端请求 → 调用mapper操作数据库 → 查询/修改数据 → 返回数据给前端页面小贴士正规企业项目还会多出一层service业务层把复杂业务逻辑抽离出来。小型项目可以简化Controller直接调用Mapper。✅ config 配置包存放所有自定义配置类示例里CorsConfig跨域配置前端页面和后端端口不一致时浏览器会拦截跨域请求这个配置放开限制让前端正常调用后端接口。后续还可以在这里添加登录拦截器、MyBatis分页配置、线程池配置等。3.2 src/main/resources 资源文件夹不会编译成class文件打包时直接复制到项目中。✅ application.yml ⭐核心配置文件SpringBoot全局配置中心常见配置内容后端服务启动端口默认8080MySQL数据库地址、账号、密码MyBatis配置、日志级别、文件上传大小限制等✅ mapper 文件夹存放MyBatis映射文件HabbitMapper.xml和mapper包下的接口一一对应所有SQL语句select/insert/update/delete全部写在这里。✅ static 静态资源文件夹SpringBoot内置静态资源目录html网页、js、css、图片都可以放这里。示例中的index.html前端页面启动项目后直接通过http://localhost:8080/index.html访问。✅ templatesThymeleaf模板文件夹。如果不用模板引擎开发页面这个文件夹可以闲置。四、完整请求链路带你打通前后端流程看完目录很多人还是不知道代码怎么联动给大家梳理一条完整流程前端打开 index.html → 网页发送请求GET /habbit/listHabbitController 接收前端请求Controller调用 HabbitMapper 里面的查询方法MyBatis加载 HabbitMapper.xml 中定义的查询SQL程序连接MySQL数据库执行SQL查询到的数据自动封装进 Habbit 实体对象Controller把数据返回前端网页渲染展示数据一条请求走完所有分层这下各个包的作用彻底串起来了。五、新手开发规范总结避坑指南新增数据表 → 创建entity实体类需要操作这张表 → 创建Mapper接口 Mapper.xml编写SQL需要给前端提供访问地址 → 在Controller新增接口通用全局功能跨域、拦截器写到configtarget、.idea 不要手动修改、不要上传代码仓库六、写在最后很多新手学习后端一上来就死磕各种框架源码却连项目目录结构都搞不清楚。地基没打好写代码只会东拼西凑遇到报错无从下手。搞懂目录分层思想不只是SpringBoot后续学习微服务、SpringCloud分层思想都是通用的如果文章对你有帮助点赞收藏后续持续更新SpringBoot实战小案例配套详细目录解析博文SpringBoot4 MyBatis 前后端分离实战从零实现坏习惯管理系统支持局域网手机访问CRUD你们刚学后端的时候哪个文件夹最让你迷惑评论区留言

相关新闻

5分钟实现B站视频智能转录:bili2text技术架构与应用实践

5分钟实现B站视频智能转录:bili2text技术架构与应用实践

5分钟实现B站视频智能转录:bili2text技术架构与应用实践 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text bili2text是一个专为Bilibili视频设计的智…

2026/9/22 16:46:47 阅读更多 →
STM32-LOW POWER

STM32-LOW POWER

一、低功耗是什么低功耗的目标是降低集成电路的能量消耗。STM32 上电后默认处于运行模式。运行模式下,CPU、时钟系统、外设等模块正常工作,功耗相对较高。当内核不需要持续运行时,可以让芯片进入低功耗模式,以减少电流消耗。STM32…

2026/9/22 14:00:59 阅读更多 →
DownKyi:B站8K视频下载的终极解决方案与安全指南

DownKyi:B站8K视频下载的终极解决方案与安全指南

DownKyi:B站8K视频下载的终极解决方案与安全指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#xff09…

2026/9/19 11:16:56 阅读更多 →

最新新闻

测验全流程解析与完整示例

测验全流程解析与完整示例

测验全流程解析与完整示例 版本升级后 API 全变了,老代码直接跑不通,这种痛谁懂?别慌,今天不整虚的,直接上 完整示例 ,把【测验】这块硬骨头掰碎了揉烂了讲透。…

2026/9/22 17:04:25 阅读更多 →
3个致命坑让你项目崩盘,Jeer保姆级教程救你

3个致命坑让你项目崩盘,Jeer保姆级教程救你

3个致命坑让你项目崩盘,Jeer保姆级教程救你 刚学完Jeer语法,满脑子都是怎么搭个像样的项目?结果一动手就崩。别慌,这坑我踩了五年,今天给你一份 保姆级教程 ,专治“懂语法不会落地”的病。 现象:为什么你的项目跑不起来…

2026/9/22 17:04:24 阅读更多 →
3分钟看懂七日年化利率源码解析,避开计算大坑

3分钟看懂七日年化利率源码解析,避开计算大坑

3分钟看懂七日年化利率源码解析,避开计算大坑 官方文档里关于收益率的定义往往晦涩难懂,几千字的细则读下来还是抓不住重点,这是很多开发者在对接金融接口时的真实痛点。别急,今天咱们直接切入【源码解析】,把七日年化利率的底层逻辑扒个底朝天。…

2026/9/22 17:04:24 阅读更多 →
3步搞定添加次坐标轴,附完整示例避坑指南

3步搞定添加次坐标轴,附完整示例避坑指南

3步搞定添加次坐标轴,附完整示例避坑指南 很多应届生刚入行,对着文档把 twinx() 或 set_twinx() 的语法背得滚瓜烂熟,结果一到真实项目里画双轴图,页面直接卡死,或者图形渲染得稀烂,根本没法交付。这其实是个典型的“知道怎么做…

2026/9/22 17:04:24 阅读更多 →
3个死坑解决无限看片的视频高清免费报错 一文搞懂

3个死坑解决无限看片的视频高清免费报错 一文搞懂

3个死坑解决无限看片的视频高清免费报错 一文搞懂 昨晚刚部署完流媒体服务,重启服务器瞬间炸锅。控制台滚动的红色报错比代码还长,满屏的 StackTrace 堆栈信息像天书一样糊在眼前。 你盯着那个 java.io.IOException:…

2026/9/22 17:04:24 阅读更多 →
实时竞价底层原理避坑指南:3个核心机制让你面试不再卡壳

实时竞价底层原理避坑指南:3个核心机制让你面试不再卡壳

实时竞价底层原理避坑指南:3个核心机制让你面试不再卡壳 面试时面试官甩出“实时竞价”四个字,你脑子里是不是瞬间一片空白?只记得是广告拍卖,但问到“为什么第二名不用付第一名那么多”或者“价格到底怎么算出来的”,你就卡壳了。这种原理答不上来的尴…

2026/9/22 17:03:24 阅读更多 →

日新闻

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天 配置环境就卡半天?别怪机器慢,多半是你没选对工具链。在Java、Go或Python的项目现场, 手写实现…

2026/9/22 0:00:41 阅读更多 →
剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑 面试被问原理答不上来,是不是常态?别慌。很多开发者对着 GitHub 开源仓库里的代码发呆,看似简单实则暗藏玄机。今天这份【剑帝加点】速查手册,直接带你拆解核心实现,把面试必考的原理讲透。…

2026/9/22 0:00:41 阅读更多 →
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站…

2026/9/22 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/22 4:32:41 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/22 4:38:57 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/22 8:51:04 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/22 2:43:42 阅读更多 →