巢晟盛
摘要:隨著互聯(lián)網(wǎng)時(shí)代不斷的發(fā)展,軟件應(yīng)用于各行各業(yè),隨之帶來了單體應(yīng)用無法滿足某些場(chǎng)景的業(yè)務(wù)需求、維護(hù)升級(jí)、耦合性、部署效率及擴(kuò)展等問題,微服務(wù)架構(gòu)逐步取代;SpringBoot致力于快速方便地開發(fā)單個(gè)微服務(wù),解決ssm大量手工配置的問題,高效地處理復(fù)雜的業(yè)務(wù)邏輯,穩(wěn)定地支撐SpringCloud微服務(wù)協(xié)調(diào)治理框架;前后端分離實(shí)現(xiàn)了前后端架構(gòu)的解耦,有利于提高開發(fā)效率,有利于降低軟件設(shè)計(jì)的耦合度,有利于提高處理復(fù)雜業(yè)務(wù)的能力。MVVM模型是MVC的優(yōu)化增強(qiáng),實(shí)現(xiàn)視圖和模型的分離,應(yīng)用于程序的分層開發(fā),適用于數(shù)據(jù)操作頻繁的場(chǎng)景。
關(guān)鍵詞:SpringBoot技術(shù);微服務(wù);前后分離;MVVM模型;數(shù)據(jù)驅(qū)動(dòng)
中圖分類號(hào):TP319? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):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 背景
在移動(dòng)互聯(lián)網(wǎng)應(yīng)用高速發(fā)展的推動(dòng)下,軟件設(shè)計(jì)規(guī)模隨著需求逐漸龐大,業(yè)務(wù)場(chǎng)景更為復(fù)雜,對(duì)軟件系統(tǒng)的性能、吞吐率、穩(wěn)定性、擴(kuò)展等特性提出了更高的要求,在此背景之下,微服務(wù)[1]架構(gòu)逐漸取代單體架構(gòu),迎來了新的技術(shù)迭代更新。其中,SpringCloud[2]是Pivotal推出的基于SpringBoot的一套關(guān)注全局的微服務(wù)協(xié)調(diào)治理框架,致力于合并管理單體微服務(wù),而SpringBoot專注于方便地開發(fā)單個(gè)個(gè)體微服務(wù)。在前后端分離的開發(fā)模式下,實(shí)現(xiàn)了前端和后端的并行開發(fā),互不影響,一方面提高了開發(fā)效率,另一方面代碼質(zhì)量更為規(guī)范、專業(yè)。
MVVC模型是馬丁·福勒的PM(Presentation Model)設(shè)計(jì)模式的變體,由微軟架構(gòu)師Ken Cooper和Ted Peters開發(fā),通過利用WPF(微軟.NET圖形系統(tǒng))和Silverlight(WPF的互聯(lián)網(wǎng)應(yīng)用派生品)的特性來簡化用戶界面的事件驅(qū)動(dòng)程序設(shè)計(jì)。由于MVVM是MVC的改版,因此在研究MVVM模式時(shí),有必要結(jié)合MVC一并進(jìn)行討論和比較。
2 基于目前互聯(lián)網(wǎng)應(yīng)用開發(fā)架構(gòu)、框架相關(guān)對(duì)比
2.1 微服務(wù)架構(gòu)與單體架構(gòu)
1)系統(tǒng)更改部署。單體應(yīng)用是按單體應(yīng)用程序單元來構(gòu)建的,對(duì)系統(tǒng)進(jìn)行更改之后,必須構(gòu)建和部署服務(wù)器端應(yīng)用程序的更新版本;微服務(wù)通過標(biāo)準(zhǔn)化的業(yè)務(wù)API實(shí)現(xiàn)功能,采用松耦合的設(shè)計(jì)原則,允許服務(wù)的所有者自由實(shí)現(xiàn)并更改基于API的數(shù)據(jù)處理或者組合服務(wù)系統(tǒng),從而消費(fèi)者不會(huì)受到服務(wù)內(nèi)部實(shí)現(xiàn)變化的影響。
2)軟件開發(fā)流程。單體應(yīng)用龐大復(fù)雜,整個(gè)應(yīng)用理解難度大,模塊重用困難、擴(kuò)展麻煩及重復(fù)部署更新版本緩慢;微服務(wù)將傳統(tǒng)模式下的單體應(yīng)用拆成獨(dú)立的服務(wù),從而實(shí)現(xiàn)單獨(dú)開發(fā)、單獨(dú)部署、單獨(dú)維護(hù)。
3)市場(chǎng)價(jià)值。單體應(yīng)用庫使用耗時(shí),適應(yīng)性差,維護(hù)成本高,從而增加了技術(shù)債務(wù);微服務(wù)減少了技術(shù)債務(wù),壓縮了開發(fā)時(shí)間,從而降低了成本提高利潤。
4)特性。微服務(wù)具有復(fù)雜度可控、獨(dú)立部署、容錯(cuò)性能好以及擴(kuò)展性高等特性。
2.2 SpringBoot與SSM
1)SpringBoot與Spring[3]的區(qū)別。SpringBoot可以建立獨(dú)立的Spring應(yīng)用程序,內(nèi)置服務(wù)端容器,不需要部署工作,簡化了煩瑣的xml文件配置,可自動(dòng)配置Spring,簡化Maven的配置。