当前位置: 首页 > news >正文

小研究 - 基于 SpringBoot 微服务架构下前后端分离的 MVVM 模型(二)

本文主要以SpringBoot微服务架构为基础,提出了前后端分离的MVVM模型,并对其进行了详细的分析以及研究,以此为相关领域的工作人员提供一定的技术性参考。

目录

4 SpringBoot

4.1 技术发展

4.2 技术特征

4.3 SpringBoot项目构建

4.4 目录结构

5 MVC模型

5.1 模型原理

5.2 模型分析

5.3 模型优势

5.4 模型缺点

5.5 SpringBoot的MVC架构

5.5.1 视图层

5.5.2 控制器


4 SpringBoot

4.1 技术发展

现阶段软件市场的发展中,Spring 开发框架,已经成为了市面上主流的开发框架类型,这是一种基于 JEE 形式下的软件产品,之后所推出的 MVC 框架,也将其运用到了各种类型的 Web 产品当中,在使用的过程中,先后出现了多个版本类型,在不同的版本当中,形成了不同的内容。这样的处理模式下,可以让其更新效率得到了全面的降低。因此,现阶段所推出的 Spring 框架,就是一种对于传统软件开发的创新发展,以此解决了大量配置方面所存在的问题。

其次,在 SpringBoot 项目的研发过程中,所形成的全新框架体系,是为了能够在处理的过程中,对各种较为复杂的配置操作模式,进行全面的创新与简化处理,这样既可以在软件升级开发的过程中,顺利的实现各种类型的目标。其次,还需要在进行处理的过程中,将其当做项目组的微服务产品。

在当下的市场发展进程中,该框架体系已经成为了当下十分重要的开发模式,因此受到了诸多方面的关注,在进行设计的过程中,可以极大的降低研发的工作量,并保障日常研发过程中,可以发挥出应有的研发效果,提升软件的功能性。

4.2 技术特征

在进行使用的过程中,该框架下可以独立进行应用的设计,在不同的 App 当中,都存在着单独的应用个体,同时也是一种 Jar 的文件类型,在进行运行中,只要能够在 Java当中进行运行,就可以进行相应的软件部署工作,同时在其中嵌入一定量的 Tomcat,这样就可以极大的简化容器部署步骤和实际的需求。

另外,在 Maven 项目的开发过程中,实际上是一种特殊的项目类型,在第三方的插件使用上,就可以有效利用好相关项目,进行有效的简化部署量。

在 Spring 配置的过程中,形成了自动化的配置方式,因此可以在实际的配置过程中,基本上基于 Java 的注释方式,进行自动化的处理,这样的处理模式十分符合当下进行的自动化配置需求,以此进一步的提升配置的处理方式。在生产的过程中,首先需要对指标、健康检查、外部配置等内容,进行针对性的分析以及处理。其次,还需实现去 XML 化的发展,这样就可以充分的取消全面配置文件的效果。

4.3 SpringBoot项目构建

在进行构建的过程中,本质上就是结合软件的实际情况,组建出一个开源库的机核,因此就要便于将各种插件部署到具体的项目当中,同时利用 Spring 的方式,进行项目的良好开发处理,同时也相应的要提供一个在线项目的处理功能。在线创建的功能性上,可以很好的让其实现项目之间的无缝对接,并保障利用一个良好的处理形式,形成一个良好的对接方式。

4.4 目录结构

在进行处理的过程中,需要明确出原声代码的存放位置,之后在前段视图的模板、资源存放的位置上,要得到进一步的处理,进而将其存放到各种资源文件当中,形成一个良好的处理形式。

5 MVC模型

在各种软件的开发设计过程中,往往为了提升软件开发的整体效率,就需要在进行开发过程中,对其产品进行全面的研究与分析,这样才可以通过对过去软件开的总结以及分析,进行针对性的工作经验的提炼,其次还需要在进行设计的过程中,有效的控制研发成本量,这样能够就可以让其工作人员在软件开发流程中,避免出现工作量大、工作内容重复问题的出现,严重影响到工作人员的开发效率。为了保障软件开发的整体效果,就需要在进行开发的过程中,积极的对其软件进行全面的更新。

5.1 模型原理

MVC 技术当中, 涉及到模型、控制器、视图等。这是一种在实际使用过程中,充分的利用业务逻辑、数据、界面显示分离的方式,进行组织代码的构成,进而可以很好的让业务逻辑有效的集中到一个部件当中。在后续进行软件的改进,以及进行软件个性化的设计过程中,可以很好的有效的提供便利的操作方式,并不需要进行额外的重新编写业务,是一种较为有效的运行模式。其次,在进行处理的过程中,MVC 是一种单独发展起来的系统输入类型,这样在处理以技术处的过程中,都可以将其功能集中在一个逻辑图形化的界面当中,形成了一个良好的结构系统。

5.2 模型分析

MVC 最初是存在于桌面程序当中,M 是模型 ,V 是用户界面,而 C 则是控制器,这样在使用的过程中,可以实现代码的分离,这样就实现了在一个程序当中,进行相应的处理。例如,在同一批的从统计数据的过程中,需要利用柱状图、饼图的方式进行表现。伴随着当下 Web 市场的发展,使得 MVC 已经广泛的应用到了市场的诸多领域中,并成为了主流的设计方式,各种开源框架下的组织,都已经研发出了自己的框架结构体系,这样就可以实现高效率的软件开发与升级。

5.3 模型优势

在现阶段 MVC 设计模型当中,其基本优势基本上分为耦合度低、重用性高、部署快以及可维护性高优势特征,在日常使用的过程中,可以很好的在应用到工程化管理环节,同时在市场占有率上也具备着较为明显的优势。

5.4 模型缺点

这是一种在 MVC 设计模型的过程中,经常会存在着无明确定义、不适合小型和中等规模的应用程序,这样就会导致整个系统有着过于复杂的结构形式。其次,在进行设计的过程中,也会导致视图对模型范围始终处于低效率的环境当中,在一般 高级界面工具,以及构造器的使用上,并不支持模式。

5.5 SpringBoot的MVC架构

在基于 SpringBoot 框架体系下,采用的 MVC 设计方式,可以很好的利用模型的方式,将其在传统的框架基础上,进行简化处理。在项目配置工作中,采用的自动化配置方式,可以让SpringBoot 框架体系中,实现高效开发的效果。

另外,在 SpringBoot 下的 MVC 设计方式,也是一种基于多种类型的技术方式,构建出的一种功能性提胸,可以在数据处理过程中,基本上都由 Model 进行集中的处理。

5.5.1 视图层

在视图层的设计过程中,采用的是在网站上进行详细准确的定义。从解释的角度进行服你,这是一种基于新式的服务器端,开发的一种 Java 的模板引擎。对于不同的 Web 环境当中实现稳定运行,同时也可以在脱机环境下进行运行。当下在采用的 Thumeleaf 系统,是一种可以实现高效率、高水平模板设计的方式,可以在其处理的过程中,将其带入到 Htum 工作流程当中,这样的显示方式下,让系统始终保持在一个合理的状态当中。例如,在静态化的系统当中,实现了整体框架下的协调处理,结合起系统框架的特征,可以随意的添加一些插件。现阶段该软件的使用,已经成为了浏览器开发工具当中十分重要的组成部分。

例如,在实际操作过程中,项目的目录下创建出的Html 模板,往往需要在系统的实际运行过程中,始终设定出一个自动检索模板,并严格的基于模板的名称,进行详细的记录。其次,在控制器调用模板的时候,仅仅利用字符串的形式,既可以实现模板名字的设置以及处理。另外,在进行调用的过程中,还需要保障对控制器当中进行良好的分析,这样就可以实现系统的良好呈现。

5.5.2 控制器

这是一种在设计出前段视图之后,需要前段的用户,对其系统发出处理、响应的请求,以此让视图的处理过程中,始终提交一定的服务器。在接受内容上,基本上 MVC 当中的 C 是一种良好的控制器。其次,在进行交流的过程中,也需要始终保持中枢枢纽的功能,避免在信息传递的过程中,出现一定的问题。或者在进行处理的过程中,所形成的处理方式并不合理,需要经过后续的调转以及处理。

相关文章:

小研究 - 基于 SpringBoot 微服务架构下前后端分离的 MVVM 模型(二)

本文主要以SpringBoot微服务架构为基础,提出了前后端分离的MVVM模型,并对其进行了详细的分析以及研究,以此为相关领域的工作人员提供一定的技术性参考。 目录 4 SpringBoot 4.1 技术发展 4.2 技术特征 4.3 SpringBoot项目构建 4.4 目录结…...

ArmSoM-W3之RK3588安装Qt+opencv+采集摄像头画面

1. 简介 场景:在RK3588上做qt开发工作 RK3588安装Qtopencv采集摄像头画面 2. 环境介绍 这里使用了OpenCV所带的库函数捕获摄像头的视频图像。 硬件环境: ArmSoM-RK3588开发板、(MIPI-DSI)摄像头 软件版本: OS&…...

基于长短期神经网络的风速预测,基于LSTM的风速预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的风速预测 完整代码: https://download.csdn.net/download/abc991835105/88171311 效果图 结果分析 展望 参考论文 背影 风速预测是一种比较难的预测,随机性比较大,长短期神经网络是一种改进党的RNN…...

Mybatis引出的一系列问题-spring多数据源配置

在日常开发中我们都是以单个数据库进行开发,在小型项目中是完全能够满足需求的。但是,当我们牵扯到像淘宝、京东这样的大型项目的时候,单个数据库就难以承受用户的CRUD操作。那么此时,我们就需要使用多个数据源进行读写分离的操作…...

Vue-组件二次封装

本次对el-input进行简单封装进行演示 封装很简单,就给激活样式的边框(主要是功能) 本次封装主要使用到vue自带的几个对象 $attrs:获取绑定在组件上的所有属性$listeners: 获取绑定在组件上的所有函数方法$slots: 获取应用在组件内的所有插槽 …...

[C++]02.选择结构与循环结构

02.选择结构与循环结构 一.程序流程结构1.选择结构1.1.if语句1.2.三目运算符1.3.switch语句 2.循环结构2.1.while语句2.2.do-while语句2.3.for语句2.4.break语句2.5.continue语句2.6.goto语句 一.程序流程结构 C/C支持的最基本的运行结构: 顺序结构, 选择结构, 循环结构顺序结…...

C语言案例 按序输出多个整数-03

难度2复杂度3 题目:输入多个整数,按从小到大的顺序输出 步骤一:定义程序的目标 编写一个C程序,随机输入整数,按照从小到大的顺序输出 步骤二:程序设计 整个C程序由三大模块组成,第一个模块使…...

如何获取vivado IP列表

TCL命令如下: set fid [open "vivado_included_ip_[version -short].csv" w] puts $fid "Name;Version" set ip_catalog [get_ipdefs *] foreach ip $ip_catalog{ set ipname [get_property DISPLAY_NAME [get_ipdefs $ip]]set iplib [get_p…...

计算机网络的定义和分类

计算机网络的定义和分类 计算机网络的定义 计算机网络的精确定义并未统一计算机网络最简单的定义是:一些互相连接的、自治的计算机的集合 互连:指计算机之间可以通过有线或无线的方式进行数据通信自治:是指独立的计算机,它有自己的硬件和软件&#xff…...

【css】超过文本显示省略号

显示省略号的前提:必须有指定宽度 一、单行文本超出部分显示省略号 属性取值解释overflowhidden当内容超过盒子宽度, 隐藏溢出部分white-spacenowrap让文字在一行内显示, 不换行text-overflowellipsis如果溢出的内容是文字, 就用省略号代替 .one-line{overflow:h…...

Java 8 中使用 Stream 遍历树形结构

在实际开发中,我们经常会开发菜单,树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看&#x…...

网络安全防火墙体验实验

网络拓扑 实验操作: 1、cloud配置 2、防火墙配置 [USG6000V1]int GigabitEthernet 0/0/0 [USG6000V1-GigabitEthernet0/0/0]ip add 192.168.200.100 24 打开防火墙的所有服务 [USG6000V1-GigabitEthernet0/0/0]service-manage all permit 3、进入图形化界面配置…...

YOLOv5引入FasterNet主干网络,目标检测速度提升明显

目录 一、背景介绍1.1 目标检测算法简介1.2 YOLOv5简介及发展历程 二、主干网络选择的重要性2.1 主干网络在目标检测中的作用2.2 YOLOv5使用的默认主干网络 三、FasterNet简介与原理解析3.1 FasterNet概述3.2 FasterNet的网络结构3.2.1 基础网络模块3.2.2 快速特征融合模块3.2.…...

SpringBoot运行时注入一个Bean

描述 使用GenericApplicationContext类的registerBean方法可以在项目运行时注入一个bean,获取GenericApplicationContext可以继承ApplicationContextAware,重写setApplicationContext,里面的参数就是ApplicationContext。 继承ApplicationC…...

Pyspark

2、DataFrame 2.1 介绍 在Spark语义中,DataFrame是一个分布式的行集合,可以想象为一个关系型数据库的表,或者一个带有列名的Excel表格。它和RDD一样,有这样一些特点: Immuatable:一旦RDD、DataFrame被创…...

Spring Boot 项目五维度九层次分层架构实现实践研究——持续更新中

说明:本博文主要参考来自 https://blog.csdn.net/BASK2311/article/details/128198005 据实践内容及代码持续总结更新中。 五个分层维度:SpringBoot工程分层实战 1 分层思想 计算机领域有一句话:计算机中任何问题都可通过增加一个虚拟层解…...

stm32常见数据类型

stm32的数据类型的字节长度 s8 占用1个byte,数据范围 -2^7 到 (2^7-1) s16 占用2个byte,数据范围 -2^15 到 (2^15-1) s32 占用 4个byte,数据范围 -2^31 到 (231-1)231 2147483647 int64_t占用8个byte,数据范围 -2^63 到 (2^63-1)…...

mac m1使用docker安装kafka

1.拉取镜像 docker pull zookeeper docker pull wurstmeister/kafka 2.启动zookeeper docker run -d --name zookeeper -p 2181:2181 zookeeper 3.设置zookeeper容器对外服务的ip Zookeeper_Server_IP$(docker inspect zookeeper --format{{ .NetworkSettings.IPAddress }}…...

SpringBoot核心配置和注解

目录 一、注解 元注解 基本注解 启动注解 二、配置 格式介绍 读取配置文件信息 案例演示1 嵌套读取bean信息 案例演示2 读取Map,List 以及 Array 类型配置数据 案例演示3 三、总结 一、注解 之前我们了解了SpringBoot基础和AOP简单应用,这期来讲…...

第三章 图论 No.3 flody之多源汇最短路,传递闭包,最小环与倍增

文章目录 多源汇最短路:1125. 牛的旅行传递闭包:343. 排序最小环:344. 观光之旅345. 牛站 flody的四个应用: 多源汇最短路传递闭包找最小环恰好经过k条边的最短路 倍增 多源汇最短路:1125. 牛的旅行 1125. 牛的旅行 …...

Leetcode-每日一题【剑指 Offer 17. 打印从1到最大的n位数】

题目 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n 1输出: [1,2,3,4,5,6,7,8,9] 说明: 用返回一个整数列表来代替打印 n 为正整数 解题思路 前置知识 M…...

远程调试MySQL内核

1 vscode 需要安装remote-ssh插件 安装成功后,登录: 默认远程服务器的登录 ssh rootip注意,Linux需要设置root远程登录; 2 安装debug扩展 C\C extemsion Pack C\C3 设置Attach进程 {// Use IntelliSense to learn about poss…...

前端学习---vue2--选项/数据--data-computed-watch-methods-props

写在前面: vue提供了很多数据相关的。 文章目录 data 动态绑定介绍使用使用数据 computed 计算属性介绍基础使用计算属性缓存 vs 方法完整使用 watch 监听属性介绍使用 methodspropspropsData data 动态绑定 介绍 简单的说就是进行双向绑定的区域。 vue实例的数…...

UML-构件图

目录 1.概述 2.构件的类型 3.构件和类 4.构件图 1.概述 构件图主要用于描述各种软件之间的依赖关系,例如,可执行文件和源文件之间的依赖关系,所设计的系统中的构件的表示法及这些构件之间的关系构成了构件图 构件图从软件架构的角度来描述…...

uniapp使用视频地址获取视频封面

很多时候我们都需要使用视频的第一帧当作视频的封面,今天我们从uni-app的安卓app这个环境来实现下这个需求。文中需要你对uniapp的renderjs有一定了解,可以先看我的这篇文章初识renderjs uniapp 安卓APP端(ios未测试) 方法&…...

java操作PDF:转换、合成、切分

将PDF每一页切割成图片 PDFUtils.cutPNG("D:/tmp/1.pdf","D:/tmp/输出图片路径/"); 将PDF转换成一张长图片 PDFUtils.transition_ONE_PNG("D:/tmp/1.pdf"); 将多张图片合并成一个PDF文件 PDFUtils.merge_PNG("D:/tmp/测试图片/"); 将多…...

递增子序列——力扣491

文章目录 题目描述递归枚举 + 减枝题目描述 递归枚举 + 减枝 递归枚举子序列的通用模板 vector<vector<int>> ans; vector<int> temp; void dfs(int cur...

解密!品牌独立站为何能成为外国消费者的心头爱?

中国人做事强调要知其然、知其所以然、知其所以必然。这一理念非常符合新时代中国跨境出海品牌独立站的发展思路。在做好品牌独立站之前&#xff0c;我们也必须知其然&#xff08;什么是独立站&#xff1f;&#xff09;&#xff0c;知其所以然&#xff08;为什么要建独立站&…...

【HDFS】每天一个RPC系列----complete(二):客户端侧

上图给出了最终会调用到complete RPC的客户端侧方法链路(除去Router那条线了)。 org.apache.hadoop.hdfs.DFSOutputStream#completeFile(org.apache.hadoop.hdfs.protocol.ExtendedBlock): 下面这个方法在complete rpc返回true之前,会进行重试,直到超过最大重试次数抛异…...

五、PC远程控制ESP32 LED灯

1. 整体思路 2. 代码 # 整体流程 # 1. 链接wifi # 2. 启动网络功能(UDP) # 3. 接收网络数据 # 4. 处理接收的数据import socket import time import network import machinedef do_connect():wlan = network.WLAN(network.STA_IF)wlan.active(True)if not wlan.isconnected(…...