【java结构】巧计各种层(dao、service等)的意思

2024-06-06 21:44

本文主要是介绍【java结构】巧计各种层(dao、service等)的意思,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记记记!!

      • 1. **DAO 和 Service 巧记方法**
        • 方法一:比喻法
        • 方法二:口诀法
      • 2. **如何记住Spring项目的目录结构**
        • 缩略词法
        • 联想法
      • 3. **一个完整的记忆技巧:角色扮演法**
        • 故事示例:
      • 4. **用日常用语概括**
      • 总结

src/main/java └── com
└── example
├── Application.java # Spring Boot 应用的启动类
├── model # 数据模型
│ └── Person.java # Person 实体类
├── repository # 数据访问层(DAO)
│ └── PersonRepository.java # Person 的 DAO 接口
├── service # 业务逻辑层(Service)
│ ├── PersonService.java # Service 接口
│ └── impl
│ └── PersonServiceImpl.java # Service 接口的实现类
└── controller # 控制层(Controller)
└── PersonController.java # 处理 HTTP 请求
DAO和Repository 实际上是一个层次的不同表现形式,在现代Spring应用中,Repository 是 DAO 的增强和简化版本。
使用比喻和角色扮演的方式,可以帮助你更好地理解和记忆这些不同层次的职责。
通过缩略词、联想和口诀等方法,可以有效地记住Spring应用的层次结构和各层的职责。

1. DAO 和 Service 巧记方法

方法一:比喻法
  • DAO 层(数据访问层):可以比作“数据库门卫”。

    • 职责:负责管理进出数据库的“门禁”。它只关心数据的存取,不关心具体业务。
    • 关键点:处理与数据库的所有交互。
  • Service 层(业务逻辑层):可以比作“业务管家”。

    • 职责:负责执行业务规则和逻辑,管理多个“门卫”以完成复杂的操作。它是系统的核心,决定如何使用数据来满足业务需求。
    • 关键点:处理和执行具体的业务逻辑。

这种比喻法有助于你在脑海中形成清晰的图像,帮助理解不同层的角色和职责。

方法二:口诀法
  • DAO 层“拿数据,管门道”

    • 拿数据:负责从数据库获取和保存数据。
    • 管门道:管理数据的出入,不涉及具体的业务逻辑。
  • Service 层“办事情,管全局”

    • 办事情:负责处理应用中的所有业务逻辑和操作。
    • 管全局:从全局的业务需求出发,调用DAO层的功能来实现具体的业务逻辑。

2. 如何记住Spring项目的目录结构

可以使用缩略词和联想法来记住典型的Spring项目目录结构:

缩略词法

使用首字母缩略词来记住常见的文件夹:

  • Model (数据模型)
  • Repository (数据访问层)
  • Service (业务逻辑层)
  • Controller (控制层)

这样就形成了一个容易记忆的词:“MRSC”。

联想法

将每个层次的职责和实际生活中的角色进行联想:

  • Model:数据的“模型”,像建模一样,定义了数据的结构。
  • Repository:数据的“存储库”,负责管理数据的存取,就像图书馆的管理员。
  • Service:业务的“服务”,就像服务员一样,满足客户(应用)的具体需求。
  • Controller:请求的“控制者”,就像指挥官一样,接收和处理指令(用户的请求)。

3. 一个完整的记忆技巧:角色扮演法

你可以把每个层次想象成一个角色,并将它们置于一个故事中:

  • Model:想象它是一个“建筑师”,它定义了如何设计你的数据。
  • Repository:是“图书管理员”,负责存储和检索书籍(数据)。
  • Service:是“酒店经理”,它管理所有的操作和服务,确保客人(请求)得到满意的处理。
  • Controller:是“接待员”,它接收所有来访者(请求)并引导他们到正确的地方(调用Service)。
故事示例:
  1. **建筑师(Model)**设计了一座图书馆。
  2. **图书管理员(Repository)**管理和组织所有书籍,确保他们可以被迅速找到。
  3. **酒店经理(Service)**知道如何提供优质的服务,指挥图书管理员去找书,并为来访者(请求)提供帮助。
  4. **接待员(Controller)**接待来访者,了解他们的需求,然后告诉酒店经理。

4. 用日常用语概括

  • DAO 层:只“关注数据”,无视其他事物。
  • Service 层:要“处理业务”,管理各种数据操作。

这种简洁的概括可以帮助你快速回忆起它们的主要职责。

总结

记忆软件架构的不同层次和它们的职责可以通过简单的比喻、缩略词、联想和故事化的方法来实现。这些方法有助于将抽象的概念形象化,从而更容易记住和理解。希望这些技巧能帮助你更好地掌握Spring项目的层次结构和职责划分。如果你有任何具体的疑问或需要进一步解释,请随时联系我!

这篇关于【java结构】巧计各种层(dao、service等)的意思的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1037309

相关文章

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Java如何从Redis中批量读取数据

《Java如何从Redis中批量读取数据》:本文主要介绍Java如何从Redis中批量读取数据的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一.背景概述二.分析与实现三.发现问题与屡次改进3.1.QPS过高而且波动很大3.2.程序中断,抛异常3.3.内存消

SpringBoot使用ffmpeg实现视频压缩

《SpringBoot使用ffmpeg实现视频压缩》FFmpeg是一个开源的跨平台多媒体处理工具集,用于录制,转换,编辑和流式传输音频和视频,本文将使用ffmpeg实现视频压缩功能,有需要的可以参考... 目录核心功能1.格式转换2.编解码3.音视频处理4.流媒体支持5.滤镜(Filter)安装配置linu

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos

Jvm sandbox mock机制的实践过程

《Jvmsandboxmock机制的实践过程》:本文主要介绍Jvmsandboxmock机制的实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景二、定义一个损坏的钟1、 Springboot工程中创建一个Clock类2、 添加一个Controller