较为完整的SpringBoot项目结构

简介: 本文介绍了SpringBoot项目的分层结构与目录组成。项目分为四层:**controller层**(前端交互)、**service层**(业务逻辑处理)、**dao层**(数据库操作)和**model层**(实体类定义)。分层设计旨在实现关注点分离,降低耦合度,提高系统灵活性、可维护性和扩展性。此外,还详细说明了项目目录结构,包括`controller`、`service`、`dao`、`entity`、`param`、`util`等子目录的功能划分,便于团队协作开发。此架构有助于前后端分离,明确各模块职责,符合高内聚低耦合的设计原则。

一、SpringBoot 项目分层

Spring Boot项目分为四层:controller层、service层、dao层、model层。

  • controller层:控制层,存放各种控制器,从前端获取数据或从前端发送数据,直接与前端链接,实现Get和Post的呼应。控制层接收前端传递的数据交给业务逻辑层,业务逻辑层通过控制层与前代端进行交互。
  • service层:业务逻辑层,存放各种业务逻辑,用于返回数据给控制层调用,调用dao层接口,不直接对数据库操作,存在接口和接口实现类,为controller层提供各种调用的方法,通过调用dao层访问数据库。
  • dao层:数据持久层(mapper层),对数据库进行持久化操作,用于存放sql语句、返回数据的json格式,springboot通过注解为方法注入sql语句,sql语句实现在mapper.xml中
  • model层:数据访问层,存放与数据库对应的实体类,属性值与数据库中的字段保持一致。实现get和set方法。

1、为什么要分层?为什么这样分层?

经典解释是:采用分层架构设计,每层只关注自己的职责范围,从而达到关注点分离的目的。这种设计使得软件系统更加灵活,易于测试和维护,同时也便于团队协作开发。通过明确的层次划分,可以降低各个组件之间的耦合度,提高系统的稳定性和可扩展性。

SpringBoot为后端项目,前连接前端项目,后连接数据库,自己本身还要承担业务逻辑处理。为了使各个不同的操作分离开来,所以自然的出现了注重与前端交互的控制层,注重自身业务逻辑的业务逻辑层,注重与数据库对接的持久化层,各层之间逻辑和侧重相对独立 (高内聚低耦合) 便于后期维护。

二、SpringBoot 项目目录结构

在java目录下的项目包名中:

  • controller:此目录主要是存放Controller的 ,比如:UserController.java。
  • service:这里分接口和实现类,接口在service目录下,接口实现类在service/impl目录下。
  • dao:持久层,目前比较流行的Mybatis或者jpa之类的。
  • entity:就是数据库表的实体对象。
  • param:放的是请求参数和相应参数UserQueryRequest、BaseResponse等
  • util:通常是一些工具类,比如说:DateUtil.java、自定义的StringUtil.java
  • interrupt:项目统一拦截处理,比如:登录信息,统一异常处理
  • exception:自定义异常,异常错误码
  • config:配置读取相关,比如RedisConfig.java


转载来源:https://juejin.cn/post/7338617055149604891

相关文章
|
缓存 NoSQL 中间件
用golang搭建springboot风格项目结构 gin+gorm
最近学了学go语言,想练习一下用go开发web项目,项目结构弄个什么样呢。
|
JSON 前端开发 JavaScript
【知识】SpringBoot项目结构目录
【知识】SpringBoot项目结构目录
1039 0
【知识】SpringBoot项目结构目录
|
4月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
428 1
|
5月前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
412 7
|
4月前
|
供应链 JavaScript BI
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
这是一款专为小微企业打造的 SaaS ERP 管理系统,基于 SpringBoot+Vue+ElementUI+UniAPP 技术栈开发,帮助企业轻松上云。系统覆盖进销存、采购、销售、生产、财务、品质、OA 办公及 CRM 等核心功能,业务流程清晰且操作简便。支持二次开发与商用,提供自定义界面、审批流配置及灵活报表设计,助力企业高效管理与数字化转型。
433 2
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
|
8月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的留守儿童爱心网站设计与实现(计算机毕设项目实战+源码+文档)
博主是一位全网粉丝超过100万的CSDN特邀作者、博客专家,专注于Java、Python、PHP等技术领域。提供SpringBoot、Vue、HTML、Uniapp、PHP、Python、NodeJS、爬虫、数据可视化等技术服务,涵盖免费选题、功能设计、开题报告、论文辅导、答辩PPT等。系统采用SpringBoot后端框架和Vue前端框架,确保高效开发与良好用户体验。所有代码由博主亲自开发,并提供全程录音录屏讲解服务,保障学习效果。欢迎点赞、收藏、关注、评论,获取更多精品案例源码。
|
8月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的家政服务管理平台设计与实现(计算机毕设项目实战+源码+文档)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
8月前
|
JavaScript 搜索推荐 Java
基于SpringBoot+Vue实现的家乡特色推荐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
8月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!

热门文章

最新文章