java前端和后端的區(qū)別 如何正確理解軟件系統(tǒng)架構(gòu)的前后端分離?
如何正確理解軟件系統(tǒng)架構(gòu)的前后端分離?首先:軟件系統(tǒng)架構(gòu)的前端和后端分離是近年來比較多的,隨著互聯(lián)網(wǎng)的快速發(fā)展,提高了前端和后端交互的響應速度,提高了用戶體驗,導致了前端和后端分離的架構(gòu)。例如,Vue
如何正確理解軟件系統(tǒng)架構(gòu)的前后端分離?
首先:軟件系統(tǒng)架構(gòu)的前端和后端分離是近年來比較多的,隨著互聯(lián)網(wǎng)的快速發(fā)展,提高了前端和后端交互的響應速度,提高了用戶體驗,導致了前端和后端分離的架構(gòu)。例如,Vue和nodejs與微服務架構(gòu)相結(jié)合。前端頁面用于呈現(xiàn)UI顯示效果,后端負責編寫API服務提供數(shù)據(jù)。Nodejs還可以作為一個橋梁引入,通過后端API連接JSON輸出,并返回前端進行頁面顯示。
其次,基于前后端分離的架構(gòu),一方面提高了響應速度,數(shù)據(jù)計算過程在中間層處理,在前端顯示;避免了傳統(tǒng)的大數(shù)據(jù)量請求服務器的壓力,性能也得到了提高中間層內(nèi)部處理拼接,采用多組件、分片、分卡方式實現(xiàn)并行加載和顯示,在非WiFi 3G和2G的弱網(wǎng)絡環(huán)境下性能提高,優(yōu)勢更加明顯,模板并行加載、優(yōu)先加載、優(yōu)先顯示,改善用戶的互動體驗。
最后:從經(jīng)典的MVC架構(gòu)到SSM和SSH的Java框架時代,再到angularjs和Vue等前端框架,雖然技術(shù)和架構(gòu)不斷發(fā)展和完善,但本質(zhì)上都是為了更方便的解決需求。前端和后端架構(gòu)的分離也是一個解耦的過程,它不綁定前端和后端,這也符合SOA的理念,基于企業(yè)服務的總線實現(xiàn)了應用系統(tǒng)對接的松耦合,有效地連接和對接了應用、文檔和數(shù)據(jù)在插件和插件模式下,以組件構(gòu)建、平臺構(gòu)建和架構(gòu)支撐的方式共同構(gòu)建企業(yè)信息化建設,以更專業(yè)的平臺實現(xiàn)其專業(yè)領域的工作,助力企業(yè)信息化發(fā)展。
現(xiàn)在流行的前后端分離項目都使用的是什么前后端框架?
開發(fā)框架主要分為三個部分:前端、web和持久性,可以自由組合。我單獨談。
在過去,有struts 1、struts 2和spring MVC for java web framework。
目前,只有一個選擇:SpringMVC,其他人都不能玩。無論是玩耍、高格、火花還是Struts2。springmvc在用戶數(shù)量和生態(tài)方面與springmvc不一樣。
無論在其他宣傳框架上投入了多少精力。學習框架的設計思路還可以。請直接在生產(chǎn)環(huán)境中使用springmvc。spring的基礎設施無法與其他框架相比。彈簧靴可用于快速開發(fā)。POM可以依賴于enable注釋直接使用。
目前,有兩種主流的JPA和mybatis。
如果項目是數(shù)據(jù)建模,請使用mybatis;如果項目是對象建模,請使用JPA。
春天來了。springboot的spring數(shù)據(jù)子項目應該希望將兩者統(tǒng)一起來。不僅兩者,而且其野心更大。它希望統(tǒng)一所有持久性層。DB、redis和elastic search都有相應的項目。它希望將所有持久性操作抽象為存儲庫操作。如果成功,業(yè)務邏輯就不需要關(guān)心持久層的選擇,交換框架也非常方便。
目前,前端框架有三個選項:react、Ag和Vue。
我不喜歡react….的語法。。。。
似乎Ag在中國的知名度不高,所以我們不太關(guān)注。
最后的選擇是Vue,它簡單快速。支持的UI庫也比較完善。
如果您想在項目中開發(fā)小型程序,建議使用Vue。語法高度一致。你將一眼就知道如何開發(fā)小程序。
java業(yè)務邏輯,寫在哪里比較好?
現(xiàn)在很多公司的開發(fā)人員都應該采用MVC架構(gòu)。
MVC是所謂的模型、視圖、控制器。
每一層都有明確的分工。
對于簡單的項目,不管nignx如何,網(wǎng)關(guān)通常都會將請求從前端發(fā)送到后端,首先發(fā)送到控制器,然后發(fā)送到服務層,然后發(fā)送到Dao層。
這里的服務層就是所謂的業(yè)務層,專門負責業(yè)務處理操作,而Dao層則負責處理數(shù)據(jù)庫,將數(shù)據(jù)庫中的數(shù)據(jù)帶回服務,經(jīng)過服務處理后返回控制器層??刂破魍ㄟ^視圖解析器解析頁面,并通過瀏覽器呈現(xiàn)頁面。
基本上,我認為答案是顯而易見的。也就是說,Java業(yè)務邏輯是在服務層編寫的。
事實上,服務層涉及接口和接口實現(xiàn)。
在編寫代碼時,我們通常為控制器定義一個調(diào)用接口。
實際上,服務接口的實現(xiàn)類應該是編寫業(yè)務邏輯的地方。
當然,許多公司可能有多個服務層,例如,有一個管理層繼續(xù)對數(shù)據(jù)進行特殊的業(yè)務處理。這里只是一個簡單的概述。
每個公司的每個項目根據(jù)其自身業(yè)務可能有不同的體系結(jié)構(gòu)。但本質(zhì)是一樣的。
綜上所述,業(yè)務邏輯必須作為一個獨立的層來處理,這樣便于擴展和維護。記住不要在控制器中編寫所有業(yè)務邏輯。
每一層都有自己的分工,是捏合在一起的。代碼不僅冗長,而且雜亂無章。
好吧,我希望我的回答能幫助你
!如果你有興趣,可以關(guān)注一下,一起學習交流!