SpringBootWebProject学习3、各类包层级说明

简介: SpringBootWebProject学习3、各类包层级说明

前言

距离本学期结束就要去实习的时间已经很短了,那么在这里我帮助大家完整的回忆一下SpringBoot的完整操作,为了更加直接体现完整的过程我会使用层叠法来完成这个系列文章,会从最新版本idea社区版本的下载开始,直至我们代码开发的整个阶段,可以将接口完全搞出来,跨域后让前端的项目可以解析,完成整个开发的闭环操作,准备工作的孩子们可以持续的跟着看看,应该会给你提供比较大的帮助。

声明:由于刚毕业的还比不可能上来就上大的微服务架构,所以这里不提供springcloud内容,当然我会在下一个系列中将本次学到的整个springboot融入到springcloud中。

系统与开发环境

系统:Windows 11 家庭中文版

idea:官网2024年1月最新社区版本:ideaIC-2024.1

数据库:阿里云RDS for MySQL 5.7

基础idea环境搭建


基础maven配置(外部独立maven)

 

基础maven默认配置(默认maven)

 


SpringBootWebProject学习正文——各类包层级说明

在Spring Boot项目中,通常会按照功能或者模块的不同将代码组织到不同的包中。下面是一些常见的包层级及其功能说明:

  • controller(控制层):该包主要用于处理用户请求和响应,负责接收用户的请求,调用相应的服务进行处理,并返回响应给用户。
  • service(服务层):该包主要用于实现业务逻辑,包含一些具体的业务处理方法。服务层一般会调用DAO层进行数据的读取和写入。
  • dao(数据访问层):该包主要用于与数据库进行交互,负责数据的读取和写入操作。通常会使用ORM框架(如MyBatis、Hibernate)或者JPA来简化数据库操作。
  • entity(实体类):该包主要用于定义与数据库表对应的实体类,每个实体类通常对应数据库中的一张表。实体类中的属性与表中的字段一一对应。
  • repository(仓库层):该包主要用于定义数据访问接口,通过接口来操作数据库。一般会使用Spring Data JPA来简化数据访问接口的编写。
  • config(配置类):该包主要用于存放项目的配置类,如数据库配置、缓存配置、消息队列配置等。配置类中通常会使用注解来标识配置信息。
  • util(工具类):该包主要用于存放一些通用的工具类,如日期处理工具类、加密解密工具类、文件操作工具类等。
  • exception(异常处理):该包主要用于定义项目中的异常类,如自定义的业务异常、全局异常处理器等。
  • dto(数据传输对象):该包主要用于定义数据传输对象,用于在不同层之间传递数据。DTO通常会与实体类相似,但可能只包含实体类的部分属性。
  • constant(常量定义):该包主要用于定义项目中使用的常量,如错误码、配置项等。

以上内容中说明了各层的作用,其中的【controller】与【repository】两个我们已经在之前的文章中使用过了接下来我们来创建一下其它在层级。

这是我们前的项目,我们在此基础上创建后续内容。


创建其它代码层

这里常用的我们逐一的创建一下:

SpringBoot项目中的各类包层级的作用,为什么要这么分?

在Spring Boot项目中,各类包层级的作用是为了更好地组织和管理代码,提高代码的可读性、可维护性和可扩展性。下面是一些常见的包层级及其作用:

com.example.project(或其他自定义的根包):该包通常用于存放项目的主要代码,是整个项目的入口。

com.example.project.controller:该包用于存放控制器(Controller)类,负责处理请求和响应。

com.example.project.service:该包用于存放服务(Service)类,负责处理业务逻辑。

com.example.project.repository:该包用于存放数据访问层(Repository)类,负责与数据库进行交互。

com.example.project.model:该包用于存放实体类(Model)或数据传输对象(DTO),用于封装数据。

com.example.project.config:该包用于存放配置类,如数据库配置、缓存配置等。

com.example.project.exception:该包用于存放异常处理类,负责处理项目中的异常情况。

com.example.project.util:该包用于存放工具类,如日期处理、加密解密等通用功能。

com.example.project.constant:该包用于存放常量类,如错误码、常量配置等。

com.example.project.aspect:该包用于存放切面类,负责处理项目中的切面逻辑,如日志记录、权限控制等。

这样的包层级划分有以下好处:

提高代码的可读性和可维护性,使代码结构清晰明了。

方便团队协作,不同的开发人员可以根据包的职责进行分工。

便于扩展和重用,可以根据需求添加新的功能模块或替换现有的模块。


相关文章
|
5月前
|
SQL JSON 前端开发
较为完整的SpringBoot项目结构
本文介绍了SpringBoot项目的分层结构与目录组成。项目分为四层:**controller层**(前端交互)、**service层**(业务逻辑处理)、**dao层**(数据库操作)和**model层**(实体类定义)。分层设计旨在实现关注点分离,降低耦合度,提高系统灵活性、可维护性和扩展性。此外,还详细说明了项目目录结构,包括`controller`、`service`、`dao`、`entity`、`param`、`util`等子目录的功能划分,便于团队协作开发。此架构有助于前后端分离,明确各模块职责,符合高内聚低耦合的设计原则。
3614 1
|
安全 算法 物联网
MQTT 安全通信 SSL 双向认证 | 学习笔记
快速学习 MQTT 安全通信 SSL 双向认证
MQTT 安全通信 SSL 双向认证 | 学习笔记
|
定位技术
百度地图缩放级别与比例尺的关系
百度地图缩放级别与比例尺的关系
1299 0
|
1月前
|
机器学习/深度学习 人工智能 JSON
AI编程时代,对应的软件需求文档(SRS、SRD、PRD)要怎么写
对于AI编程来说,需要使用全新的面向提示词的需求文档来和AI+人类沟通,构建共同的单一事实来源文档知识库是重中之重。
362 7
|
消息中间件 存储 Java
📨 Spring Boot 3 整合 MQ 构建聊天消息存储系统
本文详细介绍了如何使用Spring Boot 3结合RabbitMQ构建高效可靠的聊天消息存储系统。通过引入消息队列,实现了聊天功能与消息存储的解耦,解决了高并发场景下直接写入数据库带来的性能瓶颈问题。文章首先分析了不同MQ产品的特点及适用场景,最终选择RabbitMQ作为解决方案,因其成熟稳定、灵活路由和易于集成等优势。接着,通过Docker快速部署RabbitMQ,并完成Spring Boot项目的配置与代码实现,包括生产者发送消息、消费者接收并处理消息等功能。最后,通过异步存储机制,既保证了消息的即时性,又实现了可靠持久化。
587 0
📨 Spring Boot 3 整合 MQ 构建聊天消息存储系统
|
运维 大数据 数据建模
连载7:阿里巴巴大数据实践:OneData模型实施介绍
如何从具体的需求或项目转换为可实施的解决方案,如何进行需求分析、架构设计、详细模型设计等,则是模型实施过程中讨论的内容。
6586 1
连载7:阿里巴巴大数据实践:OneData模型实施介绍
|
6月前
|
安全 Java API
Spring Boot 功能模块全解析:构建现代Java应用的技术图谱
Spring Boot不是一个单一的工具,而是一个由众多功能模块组成的生态系统。这些模块可以根据应用需求灵活组合,构建从简单的REST API到复杂的微服务系统,再到现代的AI驱动应用。
|
API 开发者 Python
FastAPI系列 4 -路由管理APIRouter
本文是FastAPI系列教程的第四部分,介绍了如何使用APIRouter进行路由管理,通过示例展示了将应用程序功能拆分到不同的模块和文件中,创建用户和书籍的API路由,以及在FastAPI主应用中包含这些路由的方法,并提供了运行结果和API交互文档的截图。
|
SQL 关系型数据库 数据库
SqlAlchemy 2.0 中文文档(四十三)(2)
SqlAlchemy 2.0 中文文档(四十三)
366 0