Java后端开发:SpringBoot项目中的三层架构与代码角色

这篇具有很好参考价值的文章主要介绍了Java后端开发:SpringBoot项目中的三层架构与代码角色。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、SpringBoot三层架构

目前,大部分后端项目主要目的是暴露功能接口(API)到网络上,由前端程序访问这些接口并获取数据,然后展示在界面上,它们之间遵从Restful规约;还有一部分项目暴露方法,让前端代码实现远程调用,采用的是RPC的思想。

但是无论如何,后端程序存在的意义就是交换、处理和记录数据。
以下介绍均基于后端项目暴露API。

注:
控制层和服务层的任何一个类都不应该有成员变量,以免造成并发问题。
后端三层架构的任何一个方法都需要考虑方法的健壮性问题,包括入参为空、返回值为空、代码逻辑出错等问题。

1、控制层:Controller

控制层的主要作用是与前端进行交互,即暴露API到网络上,只负责接收数据和返回数据,对数据进行的任何复杂的处理都需要调用Service层的方法。

2、服务层:Service

服务层的主要作用是为了迎合业务需求,写一组方法完成对业务数据进行处理、调用持久化方法等操作。服务层的每一个方法的目的都是为了完成一个不可拆分业务的需求。

3、持久化层:Dao、repository、Mapper

持久化层的主要作用就是为了与数据库交互。例如:实现单表或多表的增删改查。

二、后端代码角色

后端代码角色除了三层架构对应的包和类,还有包括但不限于以下部分:
全局变量(properties、yml)、项目设置类(config)、基础信息类(common)、实体类(entity)、工具类(util)、数据传输类(dto)、异常处理类(exception)

1、全局变量(properties、yml)

全局变量一般以资源文件的形式存放在resource目录下,文件名一般为application.properties或者application.yml。

而且在实际应用中,不同的环境配置不同的文件,例如:上线运行环境名为application-prod.properties、开发和测试环境名为application-dev.properties。上线运行环境中的数据库中的数据一旦修改会造成严重错误,而开发测试环境中的数据是真实数据的一个副本或者假数据。

这些文件中的内容含有数据库连接需要的信息,如username、password、driver、url等;还有当前项目或应用的全局路径和接口,如port、path等;还可以使用Profiles.active指定当前环境的运行环境,但是不建议在这里或者使用@ActiveProfile进行指定,如有需要指定运行环境,可以在启动时添加-Dspring.profiles.active = 指定值。

2、项目设置类(config)

项目配置类一般用来指定当前SpringBoot项目的配置。如:指定扫描路径@ComponentScan等

3、基础信息类(common)

基础信息类的作用是规定API返回的基础信息,如规定返回格式为{操作时间,错误信息,数据对象}

4、实体类(entity)

实体类的作用是对应数据库中的表,以便于读取和写入,或者使用框架。数据库中的一张表对应一个实体类,一个列名(字段)对应实体类的一个属性,一行对应该类的一个对象。

5、数据传输类(dto)

数据传输类是为了迎合业务需求而创建的类。
与实体类不同的是:
(1)dto一般是多个表组合起来对应的一张表
(2)属性名和数据库列名会有较大不同
(3)实体类用于与数据库交互,dto用于作为参数在不同层级间传输,或者传输到前端

为了迎合业务需求,dto中的属性可能由多个表列名(字段)对应。
为了数据库安全性,dto属性名不应该完全与数据库字段名相似

6、工具类(util)

工具类一般是自己编写的用于数据处理的工具类
如:
(1)为了验证文件正确性,求文件散列值
(2)为了便于处理,将对象转换为Map
(…)等

7、异常处理类(exception)

异常处理类是对异常进行处理的类,是一个自定义的exception类,在任何一个地方都可以抛出并且阻断当前任务。有助于给前端明确的提示信息,并且能够记录错误日志。文章来源地址https://www.toymoban.com/news/detail-462932.html

到了这里,关于Java后端开发:SpringBoot项目中的三层架构与代码角色的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#的三层架构:UI、BLL、DAL

    三层架构↓↓↓↓↓↓ 三层架构分为:表现层(UI(User Interface))、业务逻辑层(BLL(Business Logic Layer))、数据访问层(DAL(Data Access Layer))再加上实体类库(Model) 操作: (1)先建立实体类库Model,打开项目,在解决方案中右键——添加——新建项目——选中类库——

    2024年02月03日
    浏览(29)
  • 网络分级设计模型的三层架构:接入层、汇聚层、核心层到底有什么说法?

    你好,这里是网络技术联盟站。 在现代网络中,为了满足不同规模和需求的组织和企业的通信需求,网络架构通常会划分为多个层次,其中包括接入层、汇聚层和核心层。这些层次在网络组网中扮演着不同的角色和功能。 本文将详细介绍接入层、汇聚层和核心层的定义、特

    2024年02月10日
    浏览(39)
  • 高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤

    ✅作者简介:热爱后端语言的大学生,CSDN内容合伙人 ✨精品专栏:C++面向对象 🔥系列专栏:JDBC快速入门 一种合理的项目分层理念,好处为可以简化设计、各司其职、更容易扩展内容 三层架构分为: 表示层 (UI、WEB):跟用户对接 业务逻辑层 (service):书写功能的整体

    2024年02月16日
    浏览(40)
  • SpringBoot数据响应、分层解耦、三层架构

    类型:方法注解、类注解 位置:Controller方法、类上 作用:将方法返回值直接响应,如果返回值类型是 实体对象/集合 ,将会转换为json格式响应 说明:@RestController = @Controller + @ResponseBody 获取员工数据,返回统一响应结果,在页面渲染展示 在pom.xml文件中引入dom4j的依赖,用于

    2024年02月06日
    浏览(47)
  • 微信小程序-JAVA Springboot项目-后端搭建-项目搭建02

    目录 一、序言 二、后端搭建 三、最终效果         本文主要讲述一个微信小程序前后端项目搭建的过程,主要内容包括小程序(前端)搭建和后端搭建,其中会描述可能遇到的问题以及解决措施,文章将会分为几个部分进行讲述, 这章将讲述后端(Springboot项目)搭建的内

    2024年02月04日
    浏览(47)
  • SpringBoot(入门)三层架构Controller、Service、Dao

    SpringB是一个基于Java的开源框架,用于创建微服务。它由Pivotal Team开发,用于构建独立的生产就绪Spring应用。 SpringBoot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件,简化开发。 Controller层:(顾名思义 控制层)控制并处理http请求,将其不

    2024年02月07日
    浏览(43)
  • java:三层架构

    界面层(表示层):用户看的得界面。用户可以通过界面上的组件和服务器进行交互 业务逻辑层:处理业务逻辑的。 数据访问层:操作数据存储文件。 需求:用户信息的增删改查操作 设计: 技术选型:Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat 数据库设计: create database day17;

    2024年02月09日
    浏览(38)
  • java三层架构

    目录 一. 什么是三层架构 1. 各层的作用 2. 三层间的联系 -- 实体层 (1)Entity在三层架构中的作用: (2)三层及实体层之间的依赖关系 二、为什么使用三层? (1)使用三层架构的目的:解耦! (2)三层与两层的区别? 三、三层架构的优劣势 (1)三层架构的优势: (2)

    2024年01月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包