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 测试技术 项目管理
产品、项目、平台、系统、应用的关系
产品、项目、平台、系统、应用的关系
644 0
|
数据可视化 大数据 定位技术
I+关系网络分析发布,提供完整的可视化分析和关系引擎功能
I+关系网络分析是以OLP模型为核心,面向业务快速建模,为开发者和终端用户提供大数据关系计算引擎(含API服务)和可视化交互分析能力,面向安防、关税、银行、保险、互联网等提供的产品化方案。目前,I+关系网络分析已在阿里巴巴、蚂蚁金服集团内广泛应用于反欺诈、反作弊、反洗钱等风控业务。
4539 0
|
存储 固态存储 索引
搜索和推荐统一存储层的新进展和思考
我们在2017年统一了搜索和推荐场景下的HA3、iGraph、RTP和DII四大引擎的存储层(参见统一之战),帮助它们取得了的更迅速的迁移能力、更快速的数据恢复能力和更丰富的数据召回能力。 最近一年来,我们在统一的存储框架上又做了进一步的演进,下面将分别从架构、Build服务以及存储模型角度介绍我们的新进展和思考。   1.架构   在我们的传统架构(参见统一之战)中,
2841 0
|
3月前
|
对象存储 数据安全/隐私保护
就软件研发问题之数据流动支持目录级别映射的问题如何解决
就软件研发问题之数据流动支持目录级别映射的问题如何解决
|
4月前
|
存储
业务系统架构实践问题之聚合根和其附属模型之间有什么约定
业务系统架构实践问题之聚合根和其附属模型之间有什么约定
|
5月前
|
UED
带您一步步构建一个具有复杂布局的电商详情页,涵盖页面结构规划、样式设计以及交互效果的实现
【6月更文挑战第14天】构建复杂布局的电商详情页涉及页面结构规划、样式设计和交互效果实现。首先,规划页面结构,包括顶部导航栏、商品图片展示区、商品信息区、用户评价区和相关商品推荐区。接着,进行样式设计,注重色彩搭配、字体选择、布局与间距以及图片处理。例如,使用固定顶部导航栏,轮播图展示商品图片,分块展示商品信息和评价,以及设计相关商品推荐区。最后,实现交互效果,如图片放大、添加到购物车按钮、滚动监听和评论互动,提升用户体验。实际开发时需根据需求和规范进行调整,保证跨设备兼容性。
101 1
|
网络协议 Java Linux
网络分层:构建信息交流的桥梁
在这篇文章中,我们将继续探讨网络分层的重要性和每个层次的功能。网络分层的优势在于每个层次的功能清晰明确,使得网络的设计和维护更加简化和灵活。网络分层的设计和实现使得我们能够在全球范围内进行高效的通信和信息交流。通过理解每个层次的功能和作用,我们可以更好地理解和解决网络中出现的问题
108 1
网络分层:构建信息交流的桥梁
|
11月前
|
安全 Linux 网络安全
论文推荐| 面向虚拟地理环境的Linux平台地理分析模型服务化封装方法
论文推荐| 面向虚拟地理环境的Linux平台地理分析模型服务化封装方法
69 9
|
机器学习/深度学习 监控 算法
转:蝶形算法在文档管理软件中的运用包含哪些具体优势
蝶形算法,也称为快速傅里叶变换(FFT),是一种用于计算序列的离散傅里叶变换的数学算法,它在信号处理、图像处理和控制系统中有着广泛的应用。
101 0
|
安全
阿里云产品体系分为6大分类——安全——安全的6种模块
阿里云产品体系分为6大分类——安全——安全的6种模块自制脑图
151 1
阿里云产品体系分为6大分类——安全——安全的6种模块