
摘要:在SpringBoot中Spring項目和Web開發帶來了較大的變化和影響,在本研究中通過闡述Spring的項目,分析Spring-Boot技術概念和特點,比較SpringBoot與傳統JavaEE開發模式差異,了解SpringBoot對Web開發的重要性。
關鍵詞:SpringBoot;Java EE開發體系;框架;架構設計
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)36-0076-02
近年來隨著該項目出現,研究人員放棄過去的javaEE體系,并且spring項目開源社區擴大,使其應用也更加易于維護,在本研究中分析了SpringBoot以及寫Java EE開發體系存在的差異,并且以該項目為核心的開發框架逐漸構成,并且分析了其部署測試管理問題等。
1 SpringBoot技術分析
Spring water是近年來新開發的開發框架,在產生該項目時有明確目標,可進一步簡化spring應用,并且配置經過優化的配置方式,能夠簡化出來的應用中的多項配置,除此之外,該項目采用了大量框架,能夠對過去項目存在的穩定性問題以及版本過度依賴問題提供解決方案,同時利用該項目能夠使眾多組建項目更好利用,逐漸改變過去Web應用開發模式。從技術上來看,主要包括以下幾個特點:首先在利用該項目進行應用時如同點菜,可進行選配組成,生成初始項目,并能夠在內部進行設置服務器和將項目打包為Jar壓縮包,進而為Docker專門設計,可以將其作為StarterPOMs配置方式使Maven配置能夠顯著簡化,SpringBoot同時還能夠為一些大型項目提供非業務功能特點,包括安全檢測,健康檢測,無須在項目中配置Xml方式。
2 SpringBoot與JavaEE開發模式的比較分析
基于Servlet技術開發的Java web技術相比過去來說發生顯著變化,在這一過程中建立了獨立整套形成獨立開源項目和生態系統,并且相比過去來說采用ejb2.0,保留了學術風格,但是由spring大量輕量級框架共同構成的,直到當前相比JavaEE體系來說有顯著差別,我們可發現開源社區是通過利用JAP來改變JavaEE體系的,從其標準上更加傾向在Hibenate,我們可以發現當Oracle收購Java之后,這對JavaEE發展是十分重要的,然而從其開發模式上來說并沒有產生顯著變化。Spring-Boot項目是以spring作為基礎框架,在該過程中主要涉及注入AOP以及面向編程AOP,將Annotation引入到DK5中,使其出現Spring項目之后并配置該方式,過去均采用Xml配置方式的Web service應用,其范圍較廣,但之后研究人員發現在配置xml文件時發現書寫難度大,很難進行后期調試的,因此Spring當時被大多數人所否定,主要是由于配置了較多的Xml文件,而SpringBoot改變不僅能夠為人們提供簡單的配置文件格式,同時采用Maven,即約定大于配置的這一理念,也被認為是慣例優先原則,從一定程度上是大多數配置信息能夠按照過去的預定原則采用缺醒方式,為客戶提供個性化的配置方式,在文件中可以使用Properties文件以及Yaml文件,而在其他配置中多使用的是其他配置類型設或Annotation,也可以說SpringBoot可以達到不使用Xml文件配置方式,相比傳統項目開發過程中能夠為開發效果帶來顯著變化。SpringBoot的項目開發從變化上是比較大的,此外在打包部署時也發生了較大變化,如下代碼所示:
這一代碼涵蓋了很多問題,具體包括Main是springboard項目的運行方式,此外對于Javaweb項目來說需要借助外網服務器,無須war形式部署,事實上,從另一程度上應用Tomcat中,最終形成的打包方式包含項目所有文件以及外部服務器內嵌的jar包,這種打包方式能夠為Docker部署提供重要的基礎,同時還會使SpringBoot項目中Java web開發流程更加便捷,當項目真正使用SpringBoot的項目完成項目開發時,不會再使用傳統的開發方式。
3 SpringBoot開發模板的具體設計
我們從前臺到后臺順序看,在頁面上當前已經逐漸放棄使用JSP這一技術,這也是目前技術發展主流趨勢,平臺模板索引主要包括Freemaker,這種索引方式是包是指語言編程模塊引擎,是通過模板生成文本輸出的,此外還包括Thymlmeleaf,其與Framarker運用原理是保持一致的,能夠對頁面圖形應用邏輯進行有效分離設計,但由于SpringBoot的項目采用Thymlme-leaf,主要是使其能夠與Springmve實現良好融合,其次,該模板引擎相比其他引擎方式來,可實現瀏覽器直接顯示,也是一種常見模板系數,但利用DOM解析時無法對一些大文件Xml進行解析,因此在前端開發時通過借助使用JQuer以及Boot-Strap,在瀏覽器數據傳輸時可以通過json的方式進行Restful傳輸,當數據到達某一服務器之后再次進行框架請求,這一框架可代替原有的Struts2C成為當前的控制層,當前達到持久層之后所涉及技術主要包括JPA,Mybatis,Hibenate等技術,該項目采用JPA融合Spring data的方式,在引擎上選擇Hibenate,采用mysql作為數據庫采用IntelliJ IDEA作為開發工具。
4 SpringBoot的部署測試變化分析
SpringBoot的項目能夠使Docker類虛擬容器器的有效部署,2013年國外公司發起Docke,之后在短時間內快速發展起來,當前已經逐漸形成了以Dot:ker為核心的生態系統,之后將Linux 4引入Docker后遵循該協議原則,目前其應用性效果中項目設計技術已經占到了主流市場1/3以上,SpringBoot針對Docker這一技術開展了很多設計和優化,使其能夠適應容器技術變化。多種T具豐富也使得Docker應用性逐漸拓展,比如SpringBoot Maven plugin方面來看,Docker能夠在正確的時間,地點進行高效運用,這也是Docker應用構建隔離的重點,通過采用Javavm方式能夠有效進行硬件環境資源隔離,相比來說能夠改變容器的外部環境,使程序移植更加便捷,這對于系統的運行維護來說是十分便利的??梢允褂肧pringBoot在分布項目中引入Maven,進一步使該插件可用于Docker鏡像Maben構建中,在進行Dockerfile鏡像層編寫后,可將該鏡像推送到Docker-file中。從一定程度上來看,Docker是一個類似Gathul原理的鏡像托管平臺,在項目開發過程中可以使用持續集成的方式,將Jenkins結合GIT Hooks,將代碼Push到相應的腳本文件中,又能夠將Mavn變異打包到鏡像文件,最后部署到相應的Dock-erHub中,將裝有Docker的服務器運行到相應的進項容器中,完成文件部署,除此之外由于springBoot項目的模板引擎在通常情況下默認開啟緩存,利用這一引擎實現相應文件的修改部署,同時開源部署可通過Jrebel實現,能夠便于開發調試效率的提升,并且在測試過程中也相比過去有了較大改變。在Spring-Boot項目中按照過去starter的做法,可以在相應的項目中引入SpringBoot starter tes,無須人為管理,相比其他的測試方式來說更加便捷,其次,可根據SpringBoot項目本身的特點在項目目錄中進行測試類的添加,其次在測試類SpringBoot中可以使用新網址來代替舊網址,可以使用兩個常用Annotation,確保測試操作的回滾,在具體測試過程中需要按照Junit開展。在控制層測試類中實際上是將Webapplieationcontext注入相應的Mockmvc中,能夠通過Springmvcv本身的測試功能,在具體測試中主要涉及項目準備,能夠為其提供有效的測試環境,通過Mockmve模塊來模擬執行請求,增加驗證和處理結果,收到相應的處理結果之后進行Assert的下定義,之后進行響應請求,最后需要卸載整個測試中,所運用的Moc:kmve環境完成整體測試,總之利用SpringBoot的項目以及springmve之間的關系測試,能夠使整個測試更加便捷,為后期實現自動化提供基礎。
5 SpringBoot管理、監控
對于web系統開發來說,通過采用SpringBoot項目能夠轉變其開發模式,主要用于監控實際生產環境,然而如何對系統各功能項進行實時監控,需要通過各性能指標參數進行有效評估,在系統處于不穩定運行過程中,需要及時找到故障問題,而不是當系統停止功能運行后才進行故障查找,以防業務系統受到較大故障影響,尤其對于大規模互聯網中需要引入相應的網管系統,但事實上這種系統在使用過程中監控流程比較粗略,利用Spring可以對所有配置信息進行有效監控,當前該應用中所涉及的線程Bean、環境、健康等相關信息,均可以采用管理端點監控的方式來實現,將所有的數據傳遞給開發者。當項目部署完成之后可以通過地址訪問監控信息,甚至進行自定義端口,對于重要的目標指標進行監控,然而這一頁任務市場上任何監控產品是無法實現的,此外對于sprinkle的項目在外部系統中的開發,可采用JMX來提升其功能,SpringBoot項目對于Spring平臺是十分重要的,無論在其特殊測試、部署或者功能開發方面都能夠顯著拓寬web系統的開發應用,隨著當前微框架的推廣應用,SpringBoot作為底層支持逐漸改變著Web開發模式。
參考文獻:
[1]張雷,王悅.基于SpringBoot微服務架構下的MVC模型研究[J].安徽電子信息職業技術學院學報,2018(4):1-9.
[2]呂宇琛.SpringBoof框架在web應用開發中的探討[J].科技創新導報,2018(8).
[3]孫宇.基于SpringBoot微框架的建筑項目管理系統[D].哈爾濱:哈爾濱工業大學,2018.
[4]譚一鳴.基于微服務架構的平臺化服務框架的設計與實現[D].北京:北京交通大學,2017.
【通聯編輯:張薇】
收稿日期:2019-09-25
作者簡介:熊永平,男(布依族),云南羅平人,講師,工學碩士,研究方向為軟件系統架構設計與開發。