手把手教你用 Spring Boot 从零开发「手迹」应用:完整前后端配置指南

项目介绍

现在的项目是一个基于 Maven 的多模块工程,整体结构是这样的:
- handwriting-blog:这是整个项目的父工程,用来统一管理各个子模块的依赖和配置。
- handwriting-common:公共模块,放一些工具类、常量、通用响应封装这些大家都会用到的东西。
- handwriting-domain:实体类模块,主要定义数据库对应的实体(Entity)。
- handwriting-security:安全核心模块,负责权限控制、认证逻辑等和安全相关的内容。
- handwriting-user:用户模块,处理用户相关的业务逻辑,比如注册、登录、信息管理等。
- handwriting-auth:验证码模块,专门处理图形验证码、短信验证码之类的验证功能。
- handwriting-web:Web 入口模块,也就是整个应用的启动入口,包含 Controller 层和对外暴露的接口。
接下来我会一个一个模块地给你讲解怎么创建、怎么组织代码,以及每个模块里该放些什么内容。
创建项目




选择左上角的文件->新建->项目,进入到新建项目部分,输入项目名称以及安装位置。这块就使用maven创建,JDK版本使用的17,可以更换其他的版本,最后点击创建按钮。
创建完成之后选中 src删除,其他内容保留。
把这段内容放到"pom.xml"文件中,粘贴之后点击右上角的刷新按钮。
目前父工程已创建完成。
创建子模块







在右上角找到设置->项目结构,找到项目设置下的模块,点击"+"添加新建模块,其中有两个地方需要注意,名称是当前子模块的名称,父项就是选择我们刚刚创建的模块,然后创建完成。进入到项目设置页面,点击右下角的应用,在选中确定完成子项的创建。
handwriting-common公共模块




只保留图中的文件目录,其他的删除。找到当前项目的pom.xml文件。把一下内容添加。
handwriting-common 模块是项目的公共工具库,主要包含以下内容:
- config
- mp # MyBatis 配置相关
- CustomMetaObjectHandler.java # 自定义元对象处理器,实现字段自动填充
- redis # Redis 相关配置
- RedisConfig.java # Redis 配置类
- WebMvcConfig.java # Spring MVC 配置(如跨域、静态资源)
- enums
- EmailTemplateEnum.java # 邮件模板枚举
- ResultCode.java # 接口返回状态码枚举
- exception
- GlobalExceptionHandler.java # 全局异常处理器,统一返回格式
- result
- R.java # 统一响应结果类(类似 ResponseEntity)
- utils
- CaptchaUtils.java # 验证码生成工具
- RedisUtils.java # Redis 操作封装工具
handwriting-domain实体类



继续创建子模块,模块名称“handwriting=domain”,以下内容添加到pom.xml
handwriting-domain模块是项目的实体类,主要包含以下内容:
- domain
- base #基类
- BaseEntity # 通用字段
- user # user目录
- user # 用户信息
- dto 用于接受前端返回的信息
security配置

创建子模块,模块名称“handwriting-security”,并把内容添加到pom.xml
handwriting-security 模块说明
这个模块是整个项目的安全核心模块,主要负责用户认证、权限控制和 JWT相关逻辑。它不直接处理业务,而是为其他模块提供安全支持。
config/—— 配置类JwtConfig.java- JWT 的配置类,定义了 token 的过期时间、签名密钥、加密算法等参数。
SecurityConfig.java- Spring Security 的核心配置类,用来设置哪些接口需要认证、哪些不需要,以及如何进行身份验证和授权。
domain/—— 实体领域类MyUserDetails.java- 自定义的用户详情类,实现了
UserDetails接口,用于封装用户信息(如用户名、密码、角色等),供 Spring Security 使用。 filter/—— 过滤器AuthenticationTokenFilter.java- 自定义的过滤器,拦截请求,解析请求头中的 JWT Token,并验证其有效性。如果验证通过,就把用户信息放入上下文中,后续流程就能获取用户身份。
util/—— 工具类JwtUtils.java- JWT 工具类,封装了生成 token、解析 token、验证 token 等常用方法,方便在其他地方调用。
web模块
创建子模块,模块名称“handwriting-web”,并把内容添加到pom.xml
handwriting-web 模块说明
这是整个项目的 Web 入口模块,也是 Spring Boot 应用的启动入口。它负责对外暴露接口,接收前端请求,并协调其他模块完成业务处理。
- controller
- auth
- CaptchaController ##验证码控制器
- user
- LoginController ##登录、注册控制器
- handwritingWebAppliction.java 启动类
- 这是整个应用的主类,带有
@SpringBootApplication注解,用来启动 Spring Boot 服务。它会自动扫描并加载所有子模块中的组件(如配置、Service、Controller 等)。是整个项目运行的起点。
resources —— 资源文件
- application.yml
- 主配置文件,定义了数据库连接、服务器端口、Redis 配置等全局参数。
- application-dev.yaml
- 开发环境专用配置文件,通常用于区分不同环境(开发、测试、生产),比如开发时用本地数据库,生产用远程数据库。
配置文件




数据库创建








打开 Navicat 工具,点击“连接”,选择数据库类型为 MySQL。接着填写连接名称,并输入你的数据库账号和密码,完成连接配置。
创建好连接后,右键点击该连接,选择“新建数据库”。在弹出的窗口中,输入你想要的数据库名称,并将字符集设置为 utf8mb4,然后确认创建即可。
创建前端项目






打开WebStorm开发工具新建项目,选择vite分类新建项目。
- 位置:项目的创建位置
- 解释器:使用node创建,我目前的版本使用的22.18.0
- vite:vite创建指令
- 模版:使用vue模版创建项目
- 最后勾选“使用ts模版创建”
- 点击创建按钮
- 会进入终端:Instakk with npm and start now?选择"No"
- 选择终端选项卡,输入pnpm i 安装相关依赖
- 补充依赖: pnpm i vue-router@4 pinia element-plus axios 在终端安装这个依赖。
封装axios

在src目录下新目录utils,新建文件reuest.ts。
路由守卫

在src下新建目录router
自定义组件

component->custom 这目录下封装了一些常用的组件,这些组件我会放入到附件中。
登录页面

0
0
0
qq空间
微博
复制链接
分享
0