巢晟盛
摘要:随着互联网时代不断的发展,软件应用于各行各业,随之带来了单体应用无法满足某些场景的业务需求、维护升级、耦合性、部署效率及扩展等问题,微服务架构逐步取代;SpringBoot致力于快速方便地开发单个微服务,解决ssm大量手工配置的问题,高效地处理复杂的业务逻辑,稳定地支撑SpringCloud微服务协调治理框架;前后端分离实现了前后端架构的解耦,有利于提高開发效率,有利于降低软件设计的耦合度,有利于提高处理复杂业务的能力。MVVM模型是MVC的优化增强,实现视图和模型的分离,应用于程序的分层开发,适用于数据操作频繁的场景。
关键词:SpringBoot技术;微服务;前后分离;MVVM模型;数据驱动
中图分类号:TP319 文献标识码:A
文章编号:1009-3044(2021)23-0128-02
Abstract: With the development of Internet Age, softwares are adopted in all walks of life. Monolith cant satisfy certain scenarios demand, maintenance upgrade, coupling, deployment efficiency, extension and etc so that Microservices gradually replace it. SpringBoot is devoted to developing a single microservice quickly, solving the problem of many manual configuration issues in SSM, handling complex business logic effectively and supporting the SpringCloud microservices coordination governance framework Stably. The front-end and rear-end separation technology realizes the decoupling of front and rear end architecture, which is beneficial to improve the development efficiency, reduce the coupling degree of software design, and improve the ability to deal with complex business. MVVM model is the optimization and enhancement of MVC, separate view and model, applied to the layered development of the program, used for data operation frequent scene.
Key words: SpringBoot; microservices; front and rear separation; MVVM model; data driven
1 背景
在移动互联网应用高速发展的推动下,软件设计规模随着需求逐渐庞大,业务场景更为复杂,对软件系统的性能、吞吐率、稳定性、扩展等特性提出了更高的要求,在此背景之下,微服务[1]架构逐渐取代单体架构,迎来了新的技术迭代更新。其中,SpringCloud[2]是Pivotal推出的基于SpringBoot的一套关注全局的微服务协调治理框架,致力于合并管理单体微服务,而SpringBoot专注于方便地开发单个个体微服务。在前后端分离的开发模式下,实现了前端和后端的并行开发,互不影响,一方面提高了开发效率,另一方面代码质量更为规范、专业。
MVVC模型是马丁·福勒的PM(Presentation Model)设计模式的变体,由微软架构师Ken Cooper和Ted Peters开发,通过利用WPF(微软.NET图形系统)和Silverlight(WPF的互联网应用派生品)的特性来简化用户界面的事件驱动程序设计。由于MVVM是MVC的改版,因此在研究MVVM模式时,有必要结合MVC一并进行讨论和比较。
2 基于目前互联网应用开发架构、框架相关对比
2.1 微服务架构与单体架构
1)系统更改部署。单体应用是按单体应用程序单元来构建的,对系统进行更改之后,必须构建和部署服务器端应用程序的更新版本;微服务通过标准化的业务API实现功能,采用松耦合的设计原则,允许服务的所有者自由实现并更改基于API的数据处理或者组合服务系统,从而消费者不会受到服务内部实现变化的影响。
2)软件开发流程。单体应用庞大复杂,整个应用理解难度大,模块重用困难、扩展麻烦及重复部署更新版本缓慢;微服务将传统模式下的单体应用拆成独立的服务,从而实现单独开发、单独部署、单独维护。
3)市场价值。单体应用库使用耗时,适应性差,维护成本高,从而增加了技术债务;微服务减少了技术债务,压缩了开发时间,从而降低了成本提高利润。
4)特性。微服务具有复杂度可控、独立部署、容错性能好以及扩展性高等特性。
2.2 SpringBoot与SSM
1)SpringBoot与Spring[3]的区别。SpringBoot可以建立独立的Spring应用程序,内置服务端容器,不需要部署工作,简化了烦琐的xml文件配置,可自动配置Spring,简化Maven的配置。