什么是后端?
后端,说简单点,主要负责处理业务逻辑、管理数据、提供接口,让前端(网页、App、小程序)能访问数据和功能。主要负责:1、写接口,让前端能来拿数据或提交数据。2、处理业务逻辑,比如注册要先检查用户名有没有被注册过。3、把数据持久化保存到数据库,保证数据长期存储不会丢。
什么是接口?
接口(API)就像是前端和后端之间沟通交流的桥梁。前端(比如网页、App)想要拿到数据,比如用户的信息、商品列表、订单记录,这些数据都在服务器(后端)那边保存着。前端不能直接操作服务器的数据库,所以要通过接口“发消息”给后端,后端接收到请求后,再把数据“打包”返回给前端,前端拿到数据后展示到页面上。
简单理解:
👉接口 = 你点外卖时发的订单,
👉后端 = 外卖商家收到你的订单,做好饭,再送回来给你。
后端项目结构及介绍
在后端开发中,为了让代码结构清晰、分工明确、便于维护,我们通常采用 三层架构 的方式来写代码。简单理解,就是把一个复杂的功能,分成三大块,各自只做自己该做的事。这三层分别是:
1.控制层(Controller)
作用:给前端提供接口,接收前端发过来的请求(比如新增用户、查询商品)。工作:调用服务层(Service)去处理业务逻辑,然后把处理结果返回给前端。举例:前端点“注册”按钮,Controller就接收到这个请求,交给后面的Service去处理。
2.服务层(Service)
作用:处理业务逻辑,比如注册时校验用户名、发送验证码、保存用户信息。工作:定义接口(比如UserService)、接口实现类(比如UserServiceImpl)、业务都在实现类里面完成。举例:判断用户名是否存在,不存在才允许注册。
3.持久层(Mapper,也叫DAO层)
作用:跟数据库打交道,执行SQL语句(查询、增加、删除、修改数据)。工作:提供方法(如findUserByUsername)、这些方法背后其实是SQL语句。举例:在数据库里查一下“张三”这个用户名有没有注册过
图1-2 系统交互流程
springboot-demo/├── src/│ ├── main/│ │ ├── java/│ │ │ └── com/│ │ │ └── yourcompany/│ │ │ └── yourproject/│ │ │ ├── controller/ # 控制层:接收前端请求、返回数据│ │ │ ├── service/ # 服务层:处理业务逻辑│ │ │ │ ├── impl/ # 服务实现层:具体写实现逻辑│ │ │ ├── mapper/ # 持久层(DAO层):操作数据库│ │ │ ├── entity/ # 实体类:对应数据库的表│ │ │ ├── config/ # 配置类:各种系统配置│ │ │ ├── utils/ # 工具类:通用小工具│ │ │ ├── exception/ # 异常处理:统一异常返回│ │ │ ├── common/ # 通用类:常量定义、统一返回结果封装│ │ │ └── YourProjectApplication.java # 启动类:项目入口│ │ ├── resources/│ │ │ ├── static/ # 静态资源:图片、css、js(如果需要)│ │ │ ├── templates/ # 页面模板(比如Thymeleaf用到)│ │ │ ├── mapper/ # MyBatis的XML映射文件(如果用XML写SQL)│ │ │ ├── application.yml # 主配置文件│ │ │ └── banner.txt # 自定义启动页(可选)│ ├── test/│ │ └── java/│ │ └── com/│ │ └── yourcompany/│ │ └── yourproject/│ │ └── 测试类(单元测试用)├── pom.xml # Maven依赖管理└── README.md # 项目说明文档
这个截图是我开发的一个后端项目目录结构,基本上Spring Boot项目都包含如下相关模块,我会对每个模块都进行详细的说明:
现在对项目结构中的每个模块都介绍说明一下:
1. 启动类(Application类)
- 作用:项目的入口,就像游戏的“开始按钮”,点一下,整个项目就运行起来了。
- 常见位置:com.xxx.Application.java
- 内容:一般带有 @SpringBootApplication 注解,一启动就自动加载配置、初始化各种组件。
2. 配置类(Config)
- 作用:专门用来做“项目设置”的,比如:
- 配置跨域
- 配置消息队列、Redis、线程池
- 配置接口文档Swagger
- 特点:通常有注解,比如 @Configuration
- 好处:把杂七杂八的设置集中管理,项目更干净、更灵活。
3. 控制类(Controller)
- 作用:负责接收前端发来的请求,处理完后返回数据给前端。
- 特点:
- 每个接口一个方法,比如 /login,/getUserInfo
- 通常用 @RestController、@RequestMapping 注解
- 逻辑:接收到请求 → 调用 Service → 返回响应。
4. 业务层(Service)
- 作用:负责具体的业务处理,一般核心代码都在这里实现,比如:
- 登录时验证用户名和密码
- 下单时检查库存
- 特点:
- 一般有接口(IUserService)+ 实现类(UserServiceImpl)
- 加注解 @Service
- 好处:把业务逻辑和控制层分开,代码更清晰、职责更明确。
5. 实体类(Entity)
- 作用:对应数据库的表,把数据封装成对象,比如:
- User实体(用户表)
- Product实体(商品表)
- 特点:
- 每个实体类的字段,对应数据库的一列
- 可能带有注解(如 @TableName,@Id)
- 好处:把数据库里的数据变成 Java 对象,便于操作。
6. 持久层(Mapper或 DAO)
- 作用:负责直接跟数据库打交道,比如:
- 查找用户
- 保存订单
- 特点:
- 用 @Mapper 注解
- 配合 MyBatis-Plus,几乎不用自己写 SQL
- 好处:把所有数据库操作集中管理,统一又方便维护。
7. 工具类(Utils)
- 作用:放一些小工具,方便大家在项目里到处使用,比如:
- 日期处理工具类(DateUtils)
- 文件上传工具类(FileUtils)
- Token生成工具类(JwtUtils)
- 好处:提升开发效率,避免重复造轮子。
8. 静态资源目录(static)
- 作用:存放项目用到的一些静态文件,比如:
- 图片
- 前端HTML页面
- js、css文件
- 注意:后端项目如果主要是提供API,这个目录用得不多;但是如果需要后台管理界面,就很重要。
9. 配置文件(application.yml / application.properties)
- 作用:项目的核心配置文件,管理一些全局信息,比如:
- 服务器端口号
- 数据库连接信息
- 日志级别
- 好处:配置灵活,想换环境只要改配置,不用改代码。
10. 项目依赖(pom.xml)
- 作用:管理项目用到的各种第三方库,比如:
- Spring Boot依赖
- MySQL数据库驱动
- Redis缓存
- JWT安全认证
- 特点:
- Maven项目中,所有依赖集中在 pom.xml 文件里
- 想用什么库,加一行配置就行
各模块之间的关系(简单流程图)
前端页面 --> Controller --> Service --> Mapper --> 数据库↑Entity(数据对象)
工具类(Utils)在任何地方都可以被调用。
配置类(Config)在项目启动时生效。
配置文件(application.yml)影响整个项目的运行参数。
项目依赖(pom.xml)决定你能用哪些功能。
总结一句话:后端项目就像一座工厂:
- 启动类:工厂的开关
- 配置类/配置文件:工厂的设定参数
- Controller:接单部门(收订单)
- Service:生产部门(加工产品)
- Mapper:仓库部门(取原料/存货)
- Entity:原材料/成品
- 工具类:各种辅助工具
- 静态资源:外观装饰或者材料存储
- 项目依赖:供应链(外部资源)
数字 1、表示获取后端开发学习资料
数字 2、表示获取前端开发学习资料
数字 3、表示获取 软考中级设计师资料
数字 4、表示获取后端常用在线免费学习资料
数字 5、计算机毕业设计优秀论文模板
数字 6、前后端分离项目案例源码
数字 7、SSM项目案例源码
数字 8、视频轮播图全部案例源码
数字 9、商城系统项目 前后端分离源码
数字10:商城系统源码 前后端分离项目【毕业设计系统】
数字11:毕业论文答辩PPT模板案例
数字12:系统部署+论文指导+开题指导+开发指导
数字13:万字答辩问题汇总文档
数字14:前后端项目结构模块详细讲解说明(小白可懂)
数字15:协同过滤算法+敏感词过滤+SpringBoot+Vue 商城源码
数字16:微信小程序考勤打卡 系统源码
更多。。。


