一、项目整体架构
本项目采用 Spring Boot + Spring MVC + MyBatis 的三层架构设计:
Controller(控制层)→ Service(业务层)→ Mapper(数据层)→ 数据库
二、各包功能说明
- controller(控制层)
作用:负责接收前端请求,调用业务层处理,并返回结果。
特点:不写业务逻辑,不操作数据库。
示例:DeptController、EmpController
- service(业务层)
作用:处理核心业务逻辑。
组成:接口 + 实现类(impl)。
示例:DeptService、DeptServiceImpl
- mapper(持久层)
作用:与数据库交互,执行 SQL 语句。
技术:MyBatis
示例:DeptMapper、EmpMapper
- pojo(实体类层)
作用:封装数据模型。
组成:
-
Dept / Emp:对应数据库表
-
PageBean:分页封装
-
Result:统一返回结果
- Application(启动类)
作用:项目入口,启动 Spring Boot 应用。
示例:TiliasnewApplication
三、系统执行流程
-
浏览器发送请求
-
DispatcherServlet 接收请求
-
Controller 接收并处理
-
Service 执行业务逻辑
-
Mapper 操作数据库
-
返回结果给前端
流程:
前端 → Controller → Service → Mapper → DB → 返回
四、分层架构优势
-
解耦:降低模块之间依赖
-
易维护:修改互不影响
-
易扩展:方便增加功能
-
易测试:支持分层测试
五、开发规范建议
-
Controller 不写业务
-
Service 不写 SQL
-
Mapper 专注数据库操作
-
使用 Result 统一返回格式
-
使用 PageBean 处理分页
六、总结
Spring MVC 架构采用前端控制器模式,结合三层架构设计,使系统具有良好的扩展性和维护性,是企业级开发的标准模式。

注解:
1.@Autowired:让 Spring 自动帮你创建对象 + 注入依赖,你不用自己 new
以前(没 Spring):
|----------------------------------------------|
| DeptService service = new DeptServiceImpl(); |
现在(有 Spring):
|---------------------------------------------|
| @Autowired private DeptService deptService; |
2.@Service = 把"业务类"交给 Spring 管理,变成 Bean
|------------------------------------------|
| @Service public class DeptServiceImpl {} |
等价于:告诉 Spring:这个类是业务层,请你创建对象、管理它、允许别人 @Autowired 注入。"
|---------------------------------------|
| @Service → 造 Bean @Autowired → 用 Bean |
3.@RequestParam的属性defaultValue可以来设置参数的默认值
4.@RequestBody:把前端发来的 JSON 数据,转换成 Java 对象。
5.@Slf4j:自动帮你生成一个日志对象 log,让你直接打日志。
6.@RestController:这个类专门写接口,返回 JSON,不跳页面。
PageHelper分页插件
1.引入依赖:pagehelper-spring-boot-starter

本地存储:


yml:
基本语法:
大小写敏感
数值前面必须有空格作为分隔符
用缩进表示层级关系,必须用空格
空格数目不重要,同层级对齐即可
#表示一行注释

数据格式:
对象/Map集合:

数组/List/Set集合:




JWT:
全称:json web token
定义一种简洁的,自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的
场景:登录认证:登陆成功后,生成令牌,后续每个请求都要携带JWT令牌,系统在每次请求处理之前,先校验令牌,通过后在处理


过滤器(Filter)
概念:是javaweb'三大组件Servlet,Filter,Listener之一,可以把对资源的请求拦截下来,从而实现一些特殊的功能,一般完成一些通用操作,比如登录校验、统一编码处理、敏感字符处理等


过滤器链:
介绍:一个web应用中,可以配置多个过滤器,这多个过滤器就形成了一个过滤器链


拦截器:
是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法的执行
拦截请求,在指定多个方法调用前后,根据业务需要执行预先设定的代码




过滤器与拦截器:
接口规范不同:过滤器需要实现Filter接口,拦截需要实现HandleInterceptor接口
拦截范围不同:过滤器会拦截所有的资源,而interceptor之会拦截spring环境中的资源