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:该包用于存放切面类,负责处理项目中的切面逻辑,如日志记录、权限控制等。

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

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

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

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


相关文章
|
Linux 测试技术 项目管理
产品、项目、平台、系统、应用的关系
产品、项目、平台、系统、应用的关系
713 0
|
数据可视化 大数据 定位技术
I+关系网络分析发布,提供完整的可视化分析和关系引擎功能
I+关系网络分析是以OLP模型为核心,面向业务快速建模,为开发者和终端用户提供大数据关系计算引擎(含API服务)和可视化交互分析能力,面向安防、关税、银行、保险、互联网等提供的产品化方案。目前,I+关系网络分析已在阿里巴巴、蚂蚁金服集团内广泛应用于反欺诈、反作弊、反洗钱等风控业务。
4555 0
|
存储 固态存储 索引
搜索和推荐统一存储层的新进展和思考
我们在2017年统一了搜索和推荐场景下的HA3、iGraph、RTP和DII四大引擎的存储层(参见统一之战),帮助它们取得了的更迅速的迁移能力、更快速的数据恢复能力和更丰富的数据召回能力。 最近一年来,我们在统一的存储框架上又做了进一步的演进,下面将分别从架构、Build服务以及存储模型角度介绍我们的新进展和思考。   1.架构   在我们的传统架构(参见统一之战)中,
2854 0
|
7月前
|
Ubuntu 数据可视化 Shell
一键访问多功能数据解决方案:如何轻松构建和管理APITable智能多维表格
一键访问多功能数据解决方案:如何轻松构建和管理APITable智能多维表格
106 0
|
JavaScript 前端开发 数据库
Unity3d(webGL)构建数字孪生小案例(包含完整的数据交互体系)附赠完整代码
Unity3d(webGL)构建数字孪生小案例(包含完整的数据交互体系)附赠完整代码,请关注公众号:拼搏的小浣熊,获取简化版的代码!
|
监控 架构师 安全
「应用组合管理」应用程序投资组合管理的权威指南
「应用组合管理」应用程序投资组合管理的权威指南
|
存储 测试技术 数据安全/隐私保护
RobotFrameWork接口项目分层及通用控制方式
RobotFrameWork接口项目分层及通用控制方式
1008 0
RobotFrameWork接口项目分层及通用控制方式