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

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

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

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

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


目录
打赏
0
1
1
0
122
分享
相关文章
产品、项目、平台、系统、应用的关系
产品、项目、平台、系统、应用的关系
842 0
搜索和推荐统一存储层的新进展和思考
我们在2017年统一了搜索和推荐场景下的HA3、iGraph、RTP和DII四大引擎的存储层(参见统一之战),帮助它们取得了的更迅速的迁移能力、更快速的数据恢复能力和更丰富的数据召回能力。 最近一年来,我们在统一的存储框架上又做了进一步的演进,下面将分别从架构、Build服务以及存储模型角度介绍我们的新进展和思考。   1.架构   在我们的传统架构(参见统一之战)中,
2913 0
【亲测有用】数据中台数据标准管理能力演示
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
三维地图万能子组件玩法全流程!拓展业务表达边界(附免费试用)
为了满足用户日益增长的个性化和定制化需求,我们推出了地图✖️万能子组件,支持自定义拼接地图组件内容,包括图表、标题等,打造超级信息面板。该组件可灵活展示地理信息业务数据,丰富可视化形式。此外,提供7天高级版免费试用、个人免费版永久使用等福利,并附有详细教程视频,帮助用户轻松配置和优化组件效果。
探索软件测试的多维视角:从单元到系统,从静态到动态
【8月更文挑战第27天】本文将带领读者穿越软件测试的迷宫,从最微小的单元测试开始,逐步扩展到复杂的系统测试。我们将一起探索静态测试和动态测试的不同面貌,以及它们如何互补地确保软件质量。通过实际代码示例,我们将揭示测试用例的设计思路和执行过程,旨在为读者提供一个全面而深入的软件测试全景图。让我们开始这段旅程,解锁软件测试的秘密,确保我们的代码不仅能够运行,而且能够完美运行。
Unity Asset Store资源大解密:自制与现成素材的优劣对比分析,教你如何巧用海量资产加速游戏开发进度
【8月更文挑战第31天】游戏开发充满挑战,尤其对独立开发者或小团队而言。Unity Asset Store 提供了丰富的资源库,涵盖美术、模板、音频和脚本等,能显著加快开发进度。自制资源虽具个性化,但耗时长且需专业技能;而 Asset Store 的资源经官方审核,质量可靠,可大幅缩短开发周期,使开发者更专注于核心玩法。然而,使用第三方资源需注意版权问题,且可能需调整以适应特定需求。总体而言,合理利用 Asset Store 能显著提升开发效率和项目质量。
163 0
元宇宙与接入层之间的关系是构建和体验元宇宙世界的重要基础
**元宇宙接入层摘要:** 元宇宙的入口与交互关键在于接入层,它通过智能手机、VR/AR等设备让用户进入虚拟世界,实现沉浸式体验。接入层支持多样设备,需高速数据传输及易用性。元宇宙与接入层相互依赖,共同进化,元宇宙发展推动接入层技术创新,以满足更丰富场景和用户需求。
论文推荐| 面向虚拟地理环境的Linux平台地理分析模型服务化封装方法
论文推荐| 面向虚拟地理环境的Linux平台地理分析模型服务化封装方法
83 9
第三方广告聚合框架设计
该框架的设计初衷是集中管理第三方的广告服务,包括服务的环境配置,初始化,以及广告的加载与展示
252 0
谈谈数据标准化是数据有效流动的基础
技术的变革正在打破市场平衡。大数据、数据分析、人工智能(AI)和物联网(IoT)正在改变组织间联系和互动的方式。
谈谈数据标准化是数据有效流动的基础
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等