mvc-service引入

什么是业务层


    1)Model1(JSP)和Model2(模糊的mvc):
    MVC:Model(模型),View(视图),Controller(控制器)
    视图层:用于数据展示以及用户交互的界面
    控制层:能够接受客户端的请求,具体业务功能需要借助模型组件来完成
    模型层:模型分为很多种:有比较简单的pojo/vo(value object),业务模型组件,有数据访问层组件
        1)pojo/vo:值对象
        2)Dao:数据访问对象
        3)BO:业务对象(就是DAO方法的组合外加一些逻辑判断)
    区分业务的对象和数据访问对象
        1)Dao中方法都是单精度方法或者称之为细粒度方法,什么叫单精度?一个方法值考虑一个操作,比如添加就是insert操作
        2)BO中的方法属于业务方法,也实际的业务是比较复杂的,因此业务方法的粒度是比较粗的。
            比如注册功能:内部包含了多个Dao方法,注册这个功能需要多个Dao方法的组合调用,从而完成功能
                1、检查用户名是否已经被注册--Dao中的select操作
                2、像用户表添加一条记录--Dao中的insert操作
                3、像用户积分表添加一条新记录,用户默认初始化积分为100--Dao中的insert操作
                4、像系统消息表新增一条新记录,新用户注册,根据新用户通讯录向他的联系人推送消息--Dao中的insert操作
                5、向系统日志表新增一条记录.....
                6、。。。

        3) 在系统中添加业务层组件

1.以前Controller是直接调用Dao层的组件

2.现在在Dao上面多了一层FruitService(impl....)

我们一个请求过来先会调用Controller层,然后依次往下

调用,最后返回给Controller,然后Controller层再把

数据响应给DispatcherServlet,在DispatcherServlet中

我们会有视图处理(tmleaf、重定向等怎么做),然后

DispatcherServlet再交给我们的客户端;其中

DispatcherServlet会通过反射去定位到Controller,然后

执行相应的方法

所以后续把对Dao的操作修改成对Service的操作

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一次做逆向

题目来源:ctf.show 1、下载附件,发现一个exe和一个txt文件 看看病毒加没加壳,发现没加那就直接放IDA 放到IDA找到main主函数,按F5反编译工具就把他还原成类似C语言的代码 然后我们看逻辑,将flag.txt文件的内容进行加…

docker(四)使用篇二:docker 镜像

在上一章中,我们介绍了 docker 镜像仓库,本文就来介绍 docker 镜像。 一、什么是镜像 docker 镜像本质上是一个 read-only 只读文件, 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。 我们可以把…

k8s 1.10.26 一次containerd失败引发kubectl不可用问题

k8s 1.10.26 一次containerd失败引发kubectl不可用问题 开机k8s 1.10.26时,报以下错误 [rootmaster ~]# kubectl get no E0515 08:03:00.914894 7993 memcache.go:265] couldnt get current server API group list: Get "https://192.168.80.50:6443/api?…

今日积累:若依框架配置QQ邮箱,来发邮件,注册账号使用

QQ邮箱SMTP服务器设置 首先,我们需要了解QQ邮箱的SMTP服务器地址。对于QQ邮箱,SMTP服务器地址通常是smtp.qq.com。这个地址适用于所有使用QQ邮箱发送邮件的客户端。 QQ邮箱SMTP端口设置 QQ邮箱提供了两种加密方式:SSL和STARTTLS。根据您选…

无缝部署您的应用程序:将 Jenkins Pipelines 与 ArgoCD 集成

在 DevOps 领域,自动化是主要目标之一。这包括自动化软件部署方式。与其依赖某人在部署软件的机器上进行 rsync/FTP/编写软件,不如使用 CI/CD 的概念。 CI,即持续集成,是通过代码提交创建工件的步骤。这可以是 Docker 镜像&#…

4.2.3 Thymeleaf标准表达式 - 5. 片段表达式

在本次实战中,我们通过 Thymeleaf 的片段表达式实现了模板的模块化和复用。首先,我们定义了一个导航栏片段 navbar,并通过参数 activeTab 动态高亮当前激活的标签。然后,我们在多个页面(如主页、关于页和联系页&#x…

网安面试经(1)

1.说说IPsec VPN 答:IPsec VPN是利用IPsec协议构建的安全虚拟网络。它通过加密技术,在公共网络中创建加密隧道,确保数据传输的保密性、完整性和真实性。常用于企业分支互联和远程办公,能有效防范数据泄露与篡改,但部署…

【C++/Qt shared_ptr 与 线程池】合作使用案例

以下是一个结合 std::shared_ptr 和 Qt 线程池(QThreadPool)的完整案例,展示了如何在多线程任务中安全管理资源,避免内存泄漏。 案例场景 任务目标:在后台线程中处理一个耗时的图像检测任务,任务对象通过 …

【Unity】 HTFramework框架(六十五)ScrollList滚动数据列表

更新日期:2025年5月16日。 Github 仓库:https://github.com/SaiTingHu/HTFramework Gitee 仓库:https://gitee.com/SaiTingHu/HTFramework 索引 一、ScrollList滚动数据列表二、使用ScrollList1.快捷创建ScrollList2.ScrollList的属性3.自定义…

经典案例 | 筑基与跃升:解码制造企业产供销协同难题

引言 制造企业如何在投产初期突破管理瓶颈,实现高效运营?G公司作为某大型集团的新建子公司,面对产供销流程缺失、跨部门协同低效等难题,选择与AMT企源合作开展流程优化。 项目通过端到端流程体系搭建、标准化操作规范制定及长效管…

【Python 操作 MySQL 数据库】

在 Python 中操作 MySQL 数据库主要通过 pymysql 或 mysql-connector-python 库实现。以下是完整的技术指南,包含连接管理、CRUD 操作和最佳实践: 一、环境准备 1. 安装驱动库 pip install pymysql # 推荐(纯Python实现&#xff0…

记录vsCode连接gitee并实现项目拉取和上传

标题 在 VSCode 中上传代码到 Gitee 仓库 要在 VSCode 中将代码上传到 Gitee (码云) 仓库,你可以按照以下步骤操作: 准备工作 确保已安装 Git确保已安装 VSCode拥有 Gitee 账号并创建了仓库 可以参考该文章的部分:idea实现与gitee连接 操…

【信息系统项目管理师】第6章:项目管理概论 - 31个经典题目及详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 第一节 PMBOK的发展【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】第二节 项目基本要素【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】第三节 项目经…

简单介绍C++中线性代数运算库Eigen

Eigen 是一个高性能的 C 模板库,专注于线性代数、矩阵和向量运算,广泛应用于科学计算、机器学习和计算机视觉等领域。以下是对 Eigen 库的详细介绍: 1. 概述 核心功能:支持矩阵、向量运算,包括基本算术、矩阵分解&…

生产级编排AI工作流套件:Flyte全面使用指南 — Core concepts Launch plans

生产级编排AI工作流套件:Flyte全面使用指南 — Core concepts Launch plans Flyte 是一个开源编排器,用于构建生产级数据和机器学习流水线。它以 Kubernetes 作为底层平台,注重可扩展性和可重复性。借助 Flyte,用户团队可以使用 P…

Python 之类型注解

类型注解允许开发者显式地声明变量、函数参数和返回值的类型。但是加不加注解对于程序的运行没任何影响(是非强制的,且类型注解不影响运行时行为),属于 有了挺好,没有也行。但是大型项目按照规范添加注解的话&#xff…

rocketmq并发消费

netty的handler 在netty的网络模型中,在想bootstrap设置handler时, 都是在等待 事件 的到来,才会被调用的方法,都是被动的, 服务端等待 request 的到来,进行read, 然后主动调用writeAndFlush写出去。 客户…

React 播客专栏 Vol.9|React + TypeScript 项目该怎么起步?从 CRA 到配置全流程

👋 欢迎回到《前端达人 React 播客书单》第 9 期(正文内容为学习笔记摘要,音频内容是详细的解读,方便你理解),请点击下方收听 你是不是常在网上看到 .tsx 项目、Babel、Webpack、tsconfig、Vite、CRA、ESL…

【PmHub后端篇】PmHub中基于自定义注解和AOP的服务接口鉴权与内部认证实现

1 引言 在现代软件开发中,尤其是在微服务架构下,服务接口的鉴权和内部认证是保障系统安全的重要环节。本文将详细介绍PmHub中如何利用自定义注解和AOP(面向切面编程)实现服务接口的鉴权和内部认证,所涉及的技术知识点…

芯片测试之X-ray测试

原理: X-ray是利用阴极射线管产生高能量电子与金属靶撞击,在撞击过程中,因电子突然减速,其损失的动能会以X-Ray形式放出。而对于样品无法以外观方式观测的位置,利用X-Ray穿透不同密度物质后其光强度的变化,…