您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页基于SpringBoot微服务架构下的MVC模型研究

基于SpringBoot微服务架构下的MVC模型研究

来源:尚车旅游网
2〇18年第4期 第17卷& 97期)

JOURNALOFANHUIVOCATIONALCOLLEGEOFELECTRONICSINFORMATIONTECHNOLOGY GeneralNo

安徽电子信息职业技术学院学报

& #〇.4 2018

.97

Vol.17

[文章编号]1671-802X(2018)04-0001-09

基于SpringBoot微服务架构下的MVC模型研究

张雷,王悦

(广东科贸职业学院,

广东广州

510630)

摘要:微服务概念改变着软件开发领域,传统的开源框架结构开发,由于其繁琐的配置流程,复杂的设

置行为,为项目的开发增加了繁重的工作量,微服务致力于解决除业务逻辑以外的开发工作量的精简与废 除,集约化的改善开发环境和开发成本;

SpringBoot作为Spri+g项目组的微服务产品,正在大规模的占领软件

市场,其简化的应用开发搭建过程,使得开发人员从繁琐的配置文件中解脱出来,大量的精力投入到项目逻 辑研发当中,其致力于成为快速应用开发领域的领导者。

MVC设计模型在”网页既软件“的生产环境中扮演 者重要的角色,不仅在各大软件产品中采用了MVC模型,越来越多的软件OEM企业通过此模型批量化的进

关键词:SpringBoot;微服务;MVC模型;网页既软件中图分类号:TP393

文献标识码:A

行软件生产。

Research on MVC Model Based on SpringBoot MicroServices Architecture

(Guangdong Vocational College of Science and Trade, Guangzhou 510630)

Zhang Lei,Wang Yue

Abstract: MicroServices concept changes the development of open source software development field, and due to its complicated configuration process and complex setup behavior, traditional open source framework development has increased heavy workload for project development. Microservices are committed to streamlining and abolishing the development workload apart from business logic, and improving the development environment and development costs intensively. As the micro service product of the Spring project group, SpringBoot is occupying the software market on a large scale. Its simplified application and development process makes the developers free from the cumbersome configuration files and devote a lot of energy to the project logic research and development, which is committed to become the leader of the rapid application and development field. MVC design model plays an important role in the production environment of “webpage software”. Not only the MVC model is used in the major software products, but more and more software OEM enterprises carry out the batch process of software production through this model.Key words: SpringBoot; MicroServices; MVC model; Webpage software

!收稿日期:2018-07-13

作者简介:张雷(1978-),男,辽宁盘锦人,实验师,研究方向:移动应用开发、智能信息处理、Web智能、数据挖掘。E-mail:917809048@qq.com.

2018.8.20 ■

丨技丨术丨应丨用丨

张雷!王悦---基于SpringBoot微服务架构下的MVC模型研究

第4期

_、微服务

(^#起源

随着软件技术的飞速发展,软件产品的功能、需 求、技术规模等方面越来越大,庞大的“体魄“使得产 品内部模块之间产生了较大的耦合,对于软件的更 新与迭代造成了巨大的资源负担,为了降低软件产 品的耦合,像 Web Service、RESTful、Web Socket 等 技术不断做出改进,微服务软件架构在此前提下应 运而生。

微服务是一种新兴起的软件设计架构,它通过 将庞大的软件产品细分为多个零散的小型应用,很 好的解决了高耦合的弊端,细分后的应用工作简便 有序,大大降低产品耦合的同时,降低了开发难度, 减少了研发经费。

(二)优势

微服务最大的优势在于通过扩展组件的形式来 处理功能上的瓶颈问题,从而更好的利用了各类计 算资源,使得开发人员不再需要部署一个全方位的 应用环境来发布一个新迭代的软件版本,达到资源 利用率大幅提高的目的。

由于细分应用,对于软件产品更新也变得更加 快速,无论从产品迭代到代码测试都按照细分后的 应用规模进行,从而大大降低产品更新周期。

在云计算领域微服务也起到了不可或缺的作 用,在事件驱动计算方面,类似于AWS Lambda这 样的功能让开发人员能够编写的代码处于休眠状 态,当有事件触发时方可执行。

、SpringBoot

(\"')起源

Spring开源框架是现在市场占有率最高的基于

JEE框架的研发型软件产品,其推出的SpringMVC 框架被广泛的应用于各类Web产品的研发当中。 Spring先后发布了多个版本,但各个版本之间最大

的不同在于繁琐的配置工作随着版本的更新在逐步 的减少,也就是说,Spring框架一直致力于解决繁琐 的配置工作问题。

SpringBoot项目是Pivotal团队开发一个全新 XSpring框架,其开发的目的在于解决UEBAO^MSpring开发过

2018.8.20_____程中的复杂配置操作,最终实现零配置为目标,

SpringBoot作为Spring项目组的微服务产品,正在

大规模的占领软件市场,其简化的应用开发搭建过 程,使得开发人员从繁琐的配置文件中解脱出来,大 量的精力投人到项目逻辑研发当中,其致力于成为 快速应用开发领域的领导者。

(二) 特点

应用:每一个SpringBoot App都是存 在的个体应用,可以是一个Jar文件,也可以是一个

war文件,只需要基本Java运行环境即可满足部署

要求,SpringBoot App内部嵌入了 Tomcat,从而无需 部署Web容器。

Maven项目:SpringBoot项目实P上是一■个 Maven项目,在第三方插件的使用上完全可以通过 依赖maven或者Dradle来实现,大大简化部署量。

Spring配置自动化:基于Spring4.X,配置工作可 以完全通过Java注释的方式来实现,从而实现自动

化配置。

生产就绪功能:指标、健康检查、外部配置。

XML化:可以完全取消配置文件。

(三) SpringBoot项目的创建

SpringBoot实际上是大量开源库的集合,可以 非常方便的将插件部署到Eclipse等IDE中从而实 现项目的开发,也可以通过spring提供的基于 eclipse的开发工具Spring Tool Suite来进行开发,另 外Spring也提供了在线创建项目的功能,将该创建 的项目无缝对接到相应的IDE中。关于SpringBoot 项目创建的更多信息可以关注http://projects.spring. io加以了解。

(四) SpringBoot项目的目录结构

目录结构说明:

* src/main/java目录:Java原生代码的存放位

置。

* src/main/resources目录:是前端视图相关的模 板、资源存放的位置,其中templates子目录存放由 Thymeleaf产生的视图模板等,static存放各类资源

文件

* src/test/java目录:测试目录

张雷!王悦---基于

SpringBoot微服务架构下的MVC模型研究

第4期

^ ^3t SpringBootMvc [boot]

> 适 src/main/java癫®• src/main/resources > ^ static [> |i2i> templatestapplication.properties]

t> ® src/test/java

> JRE System Library [JavaSE-1.8]> m Maven Dependencies> targetsrc

圍 mvnw 圖 mvnw.cmd [v] pom.xml

图1 SpringBoot项目的目录结构* JRE System Library:JRE 的库目录

* Maven Dependencies:Maven 的依赖库目录* src目录:源码目录

* target目录:项目打包后的目标目录* pom.xml:Maven的依赖文件三、MVC模型

我们在进行各类软件开发过程当中,为了更加 高效的进行产品的研发,往往我们需要对过往开发 的产品的经验加以总结和提炼,尤其在降低人员成 本、提高开发效率、缩短开发周期等方面。

随着互联时代的到来,

Web应用开发需求越来

越大,为了 “流水线化”、“项目化”的开发需求,各个 组织、机构或者个人都在研究一种科学有效的高效 能设MVC计模式,从而大大提高此类产品的研发效率,

就是业内十分推崇的设计模型。

(一MVC)模型原理

全称是 Model、View、Controller,即模型、视

图、控制器。用一种业务逻辑、数据、界面显示分离 的方法组织代码,将业务逻辑聚集到一个部件里面, 在改进和个性化定制界面及用户交互的同时,不需 要重新编写业务逻辑。

MVC被独特的发展起来用于

映射传统的输人、处理和输出功能在一个逻辑的图 形化用户界面的结构中。

(二MVC) 模型分析

开始是存在于桌面程序中的,M是指业务

模型,V是指用户界面,C则是控制器,使用MVC的 目的是将M Q V的实现代码分离,从而使同一个程

序可以使用不同的表现形式。比如一批统计数据可

以分别用柱状图、饼图来表示。C存在的目的则是确 保M Q V的同步,一旦M改变,V应该同步更新。

随着Web应用开发的繁荣,MVC已经随着各

类框架占据了市场的主导位置,各大开源框架源组 织均推出自己的

MVC框架,其中主要的有,JEE (BootMVC,StrutsJsp+Servlet+Model),SpringMVC,Asp.net MVC,Spring MVC 等等。

MVC(三) 模型优势

设计模型的优势是:耦合度低、重用性高、

部署快、可维护性高、生命周期成本低、可维护性高、 利于工程化管理、市场占有率高等优势。

(四MVC) 模型缺点

设计模型的缺点是:无明确定义、不适合

小型、中等规模的应用程序、增加系统结构和实现的 复杂性、视图与控制器间的过于紧密的连接、视图对 模型数据的低效率访问、一般高级的界面工具或构 造器不支持模式。

SpringBoot四、

SpringBoot 的 MVC 架构

框架下有着完善的MVC设计模型 支持,其在SpringMVC4.x基础上进行了简化操作,

对于项目的配置工作采用自动化配置的方式,使得 在

SpringBoot环境下进行MVC模式的开发变得尤

为简单。

ThymeleafSpringBoot 下的 MVC 基本由 Controller + View +Model 组成,Controller 控制器起到在 Model 和 Model 间衔接作用,Thymeleaf 是 View, 有专门的类与其对应,对于数据的操作则完 全通过Model来完成。下面我们详细的介绍MVC各

个组成部分。

1.视图层Thymeleaf(百叶窗)

engineThymeleaf⑴简介

is a modern server-side Java template for both web and standalone environments.这

2018.8.20

^XUEBAO

丨技丨术丨应丨用丨张雷\"王悦---基于

SpringBoot微服务架构下的MVC模型研究

第4期

使用 ThymeleJ

af创建接收用

户输入信息以

视图模板;展示1§息

r

Ar

使用

Controller实体类接收

客户端信息,返回视图模型

i

r

使用

Model实例将处理结果

反馈给视图模板

图2

SpringBoot的MVC系统架构图

是其网站上的准确定义,从其解释来看,Thymeleaf 是一个新式的服务器端的Java模板引擎,其运行的

环境可以是环境,也可以是脱机环境中。

Thymeleaf主要的目的在于将优雅、自然的模板 带入到你的Html工作流程中,使Html正确的显示

在浏览器中,同时可以工作在静态的原型中,从而强

有力的支持开发团队的协调工作。结合

Spring框架 下的模块,您可以添加自己的插件到Thymeleaf中, 将Html您喜欢的工具集成起来,Thymeleaf是现在支持 5较好的Java开发集。当然Thymeleaf还有其

他较好的功能。

EEEclipse, IntelliJ IDEA, Spring, Play 甚至 Java 8 也支持 Thymeleaf。

XUEBAO^M

2018.8.20_____添加了 Thymeleaf的Html页面和原有的Html

模板没什么太大区别,甚至您可以在原有项目的基

础上添加

Thymeleaf,也不会太多的改变原有Html 模板.我们一起来看下添加了 Thymeleaf的Html模

板。

代码1:<

table>

thName>thPrice>

>

th:text=\"priceOranges th:text=\"${#numbers.formatDecimal(prod.

, 1, 2)J\">0.99

代码i说明:

鲁${...}变量表达式 鲁*{...}选择变量表达式 鲁#{...}消息表达式

鲁@{...}链接

url表达式

鲁Thymeleaf是嵌入到Html的标签当中,引入 标识是th:开头。

th• Name:是将由后台传递过来的信息头中的name属性 值显示在标签中

• :是准备 将后台对象allProducts的内容进行循环遍历,每次 循环遍历的对象为prod。下面的标签为循环体 内容,本例中其下面包括了两个标签

• Oranges:同

丨技丨术丨应丨用丨张雷\"王悦---基于

SpringBoot微服务架构下的MVC模型研究

第4期

样是循环体中的内容,在这—<>标签中将输出本 次循环对象

tddependency>

prod的name属性。

(2)Thymelea3下载与部署

Thymelea3是以Jar包的形式由项目中弓丨入的插

鲁第一种:从

代码2说明:

件库,引人的常用方式有两种:

Ide导人到项目当中,目前发布的稳定版本是3.0.2 发布版。下载地址:http://forum.thymelea3.org/ Thymeleaf-3 -0 -2 -JUST -PUBLISHED -td4029985. html

•第二种:使用Maven或者Kradle,通过设置依

赖的方式自动导入项目当中。

我们可以在代码2:<

Thymelea3网站下载Jar包,然后由

dependency〉:依赖标签

• R org.thymeleaf:引入的组织Id• thymelea3:引人的具

•〈体产品

• <版本标识

(3 )

version>3.0.2.RELEASE:产品的

Thymelea3模板的创建

Thymelea3模板的创建实际是创建Html文档的 过程,需要在文档中标记相应的Thymelea3标记。

创建步骤:

Maven或者Kradle的poe.xml文件

中导入下面代码

dependency>

org.thymeleafthymeleaf3.0.2.RELEASE

ckage Explorer S3

B % | •!*

▽ = S

SpringBoot项目

•在项目目录下找到resources下的 template目录,在其下面创建login.HTML模板 •在 login 中添加标识,到此我们可以添加相关的 Thymelea3代码到Html模板中了。

•创建

功 SpringBootM...

国 listhtml

*login.html

[Zl DataBase.java ^ application.... [£) single.html 固 ol

5 ShangHaitrainingone [boot]

■ ShangHaiTwo [boot]■ SpringBootMvc [boot]

泛 src/main乃ava

® src/main/resources t>

d

statictemplates[£| delete.html

區]index.html

|£| inserthtml

函 listhtml

匡]login.html

|£| olchtml

匡| single.html

|s| update.html

^

1 | 2*=» | 3^

4

5 Insert title here6 | 7^

8^

9^
10 username:11 password:12 13
14
15 _16

application.properties

图3

Thymelea3 模板

2.控制器

当在项目的该目录下创建相应的记录在后台,当有控制器调用

Html模板后, Controller、RestController

系统在运行前将自动检索模板,并根据模板的名称 当我们设计了前端视图后,需要将前端用户的 请求进行处理、响应时,视图需要将请求内容提交给

Thymelea3模板时只

需以字符串的形式条用模板名字(无需后面的扩展

名)即可。具体调用过程,将在控制器中进行分析及 演示。

MVC中的”C”控制

器,Controller是在Model和View之间进行父流的枢纽,当View传递信息给Model时,或者

2018.8 \" ^ &

后台服务器,接收该内容的即是

丨技丨术丨应丨用丨张雷\"王悦---基于

SpringBoot微服务架构下的MVC模型研究

符串的形式。

第4期

Model将处理结果传递给View时,都是通过 Controller来中转,调度,处理的。

(1 )Controller 简介

在SpringBoot框架中,Controller完全由代码注

释的形式存在(如果大家习惯了配置文件的方式,需 要去了解下Java的注释技术及Spring的注释配置 技术,此文不做详解)。

分类:在

模型中Controller的工作,接收和返回信息均是以字

• RestController:该控制器是 SpringBoot 将

WebService技术与常用的数据封装格式整合在一

起,通过一定的技术规则,将原来较为复杂的数据封 装技术简化为十分方便的几个步骤来实现

Controller,分别如下:

• Controller:基本的控制器,用于接收、传输纯

字符串信息,调用业务模型处理信息,也是

SpringBoot框架下,主要包括两种

SpringBoot主要的控制器,它可以完成大部分MVC

> E51 DockerMysql> > ^> ^> ^> [> ^[> I> ^

*

333

WebService功能,常用的数据封装格式(例如:Json、

Xml)在RestController中均有支持。该控制器常常用 在各类移动APP的数据业务和大型综合信息系统 的数据统一管理平台中使用。随着移动APP和大数 据时代的来临,以WebService方式的数据提供、管

理模式得到了更多的企业和应用的喜悦。

import java. in:.ii. Arraytist;

3 import java. util. List;

4 import javax. servlet, http. HttpServletRequest.;5 import javax. servlet, http. HttpSession;6 import org. springframework. beans, factory, annotation. Autowired;7 import org.springframework. stereotype. Controller;8 import org.springframework. ui. Model;9 import org. springframework. web. bind, annotation. RequestMapping;10 import ywkj. xxj. bean, userbean;11 import ywkj. xxj. jpa. CourseJpa;12 import ywkj. xxj. jpa. UserJpa;■t^@Controller

14 public class ControllerA {15‘:_©Autowired

UserJpa uj;16

CourseJpa cj;

FirstSpringBoot [boot] MongoDbProject [boot] MonGoProject [boot] RestFulH [boot]RestFull2 [boot]

ShangHaiSPringboot [boot]ShangHaitrainingone [boot] ShangHaiTwo [boot]

SpringBootMvc [boot]^-------* ^

> Eil MongoDbProjectl [boot]

3

> £1 RestFull [boot]

3

src/main/java I>

ywkj.xxj [> 0 ywkj.xxj.bean

d

3 ywkj.xxj.controller i> [T| ControllerA.java

i> 0 ywkj.xxj.filter :> ^

ywkj.xxj.jpa ■ ® ywlg.xxj.listener

~18-

|20

19

©Revues tMappingR\"/1’)

String index(){

^

return ’’index'

丨> 田 ywkj.xxj_model

^ ywlg.xxj.webservice [> [> [>

&&

一21

22*

23

2425 26­27

src/main/resources src/test/java

JRE System Library [JavaSE-1.8]

©RequestMapping(\"/index”) String indexs (){

return \"index\";@Re que s t. Mapp i ng (H /1 o g i n11) Strine loeinO I

[> ^ Maven Dependencies [> 泛 src

4 Controller的创建

的相对Url地址,当要访问该控制器时,通过该地址 进行访问。

•方法indexs书写具体功能,可在其中接收前 端提交的Request信息,也可以通过Respose对象返 回前端信息,同时也可以通过Model对象传递信息 给到前端。在以上代码中return “index“语句表本跳 转到名称为index的ThymeleaL前端视图模板。

(2)Controller 的创建

从图4可知Controller的创建是通过代码注释 的方式,以Java类的形式存在的一个实体类,具体

步骤如下:

•创建实体类:在项目下的src/main/java目录 下创建相应的项目包,在包下创建控制器的实体类

ControllerA

•在 ControllerA 中声明注释 Controller

RequestMapping(“/index”),/index 代表该控制器

I l1 I I i I IM

2018.8.20

•创建方法indexs,在其上添加注释

(3)RestController 的创建

从图 5 可知,RestController 和一*般的 Controller 的创建步骤基本一样,将注释改为RestController,同

张雷\"王悦一基于

SpringBoot微服务架构下的MVC模型研究

第4期

5 RestController 的创建

语言技术体系中调用Http处理协议进行数据的提 交,该种技术目前较为少用,在对于底层技术要求较 高的大型应用及各类框架技术中,出于保密等目的 被普遍使用。

以上内容基本可以包括了较为常见的几种

List实例转换的字符串对象。

(4)Controller 接收 View 信息

Controller接收View信息的方式与传统的Web

进行0ie1向Controller的信息提交和接收:

时方法的返回结果必须是一个List实例或者一个

应用开发模式相同,可以通过以下几个主要的方式

0ie1端的提交方式汇总如下:

! View端以表单形式提交信息:表单(Form)是

View端的提交方式,对于Session方式并不是View

向服务器端提交信息,而是直接在服务器端进行信 息的处理,不在此进行讨论。

接下来我们看看Controller中接收View的方式 如下:

! Controller端通过Jee框架下的内置对象

最为常见的用户信息提交方式,广泛应用在各类

Web技术体系中,其主要的提交方式有两种Post和

Get,其中的区别不在本文中进行介绍,有需要的读

者可以参考相关资料。

! View端以超链接形式提交信息:此类方式 也较为常见,相对于表单其具有代码简单无需设置 视图控件等特点,可以迅速搭建提交信息格式。

! View端米用Js、JQuery等前端技术通过

request来接收数据,其中主要的方法有

getParametor,getHeader 两个方法。

!源码接收:通过源码的方式接收View端提 交的信息,在这里主要方式是通过Http方式进行接

Http协议进行底层的数据封装后进行信息的提交, 下面我们可以通过一个实例来展示如何实现 View向Controller提交和接收数据的全过程。该种提交方式在用户体验性较高的Web应用体系

中较为常见,其实现的Web应用的用户体验更加的 3.模型 Model

(l)Model的作用接近于桌面应用程序。前两种方式必须通过页面间

Model是MVC设计模型中的重要组成部分,其 的跳转方能实现提交信息,从而牺牲了用户体验性。

该种提交方式采用页面局部刷新的方式,使得用户 在本页面中就可以实现数据的刷新,从而提高用户 体验性。

•源码提交的方式,也即是通过Java、Asp等

主要的工作是解决实际的业务需求,例如:数据的增 加、插入、修改、删除;各类业务的逻辑和算数运算; 项目外各类网络接口的调用;服务器端硬件资源的 调度等等。

2018.8.20

I技丨木丨应丨用I

t> 进 ywkj.xxj.respository

张雷!王悦---基于

SpringBoot微服务架构下的MVC模型研究

第4期

i ® src/main/resources

& static ^ & templates

圍 abouthtml

||] contact,htm!匿| events.html

index.html |§] index2.html

login.html |] okhtml 屋{ shop.html 屋| single.html [a| teacherir>dex.html §] wrong.html

0

application.properb'es

2 5今 26今

27^

account

password

'
30

r!gg^st

132§/div> |3B

34 35 36

}

y394 ^9^9798I0 XTx 0T X0I X0T X0I X0I XI0 XT0 XI X0T X0I X1IX1

90123456795s>^-

6 View向Controller提交和接收数据的全过程(1)

@RequestMapping (\"/checkteacher\")

String CheckTeacher(HttpServletRequest request,HttpServletResponse response,Model model){

if (request. getParameter(\"username\") . equals(\"tom\")){

try { n ,,

response.sendRedirect(\"index\");} catch (IOException e) {

e. printStackTrace();

}else{try { • n ,,

response. sendRedirect (\"wrong\");} catch (IOException e) {

e. printStackTrace();return null;

0

112

7 View向Controller提交和接收数据的全过程(2)

Model对应的类,创建对象,调用方法即可实现。

(3 \"Model 类

在SpringBoot框架中设置了一个专门的模型类 Model,用于向View传递信息,下面我们可以通过一 段代码来展示Model类的使用方式。

(2 \"Model的存在形式

Model的存在形式在SpringBoot框架中是米用 面向对象的理念,将Model主要完成的任务进行类

化封装,每个类对应一个功能完整的模型,类中的各 个方法对应模型的某一个功能点,当Controller需要 调用Model解决实际的业务需求时,只需要调用

8 Model类的使用方式

图8可知,在控制器中的requestlist方法当有 由图8和图9我们可以看出,Model在后台向 请求时,将信息封装到一个list实例中,并加人到 前端传递信息时起到了巨大的作用。model属性中,传递给前端,页面直接跳转到list模 五、结论

综上所述,SpringBoot框架下的微服务架构,基 板中。

图9为模板list,其中x代表接收到的model传于MVC模型的应用创建工作变得尤为简便,大大 递过来的参数x,y代表每次读取的list的值。 提高项目的开发效率,缩短开发周期,降低开发成

XUEBAO

|

2018.8.20

丨技丨术丨应丨用丨

src/main/resources > 色 static

a

张雷!王悦---基于

11^

12^

SpringBoot微服务架构下的MVC模型研究

第4期

templatesH] delete.html [2] index.html [2] insert.html H] listhtml [s] login.html ID ok.html [=]single.html |s| update.html

^

  • id

  • 姓名
  • • getSexf)尸*>性别<;/li>

    T

    >

    application.properties

    |

    & src/test(java

    iRE System Library UavaSE-1.i

    图9

    list模板

    Java EE互联网轻量级框架整合开发SSM框架

    Spring MVC+Spring+MyBatis 和 Redis 实现[M].北京:电子工业

    出版社,2017:56-63.

    [6] 陈德春,管西京,等.HTML5+CSS+JavaScript深人学习实录 [M].北京:电子工业出版社,2013:358-412.

    [7] Craig Walls. Spring Boot实战[M],北京:人民邮电出版社, 2016:200-207.[5] 杨开振.

    本,随着互联网科技的迅猛发展,挥重要作用。参考资料:

    SpringBoot必将发

    [1] Graig Walls. SpringBoot In Action[M].北8:人民邮电出版 社,2016:42-.

    [2] Paul Deck. SringMvc学习指南[M].北京:人民邮电出版社, 2016:34-45.

    [3] 张友生,王勇.系统架构设计师考试全程指导[M].北京: 清华大学出版社,2014:383-433.

    [4] 陆远蓉.微服务架构下的移动教学平台的规划和设计[J]. 工程技术研究,2017,(7): 234-236.

    因篇幅问题不能全部显示,请点此查看更多更全内容

    Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

    违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

    本站由北京市万商天勤律师事务所王兴未律师提供法律服务