胡世洋,賴森林



摘要:為了智能地分析和挖掘農產品市場生態信息,開發了一套基于以大數據分析為核心,以SSM為框架的“微農”信息服務平臺。該系統分為電腦端的綜合信息管理系統和手機端的信息應用系統。文章簡述了SSM輕量級框架的特點,指出了選擇SSM框架的原因,分析了“微農”信息服務平臺的特點和功能結構,闡述了如何采用SSM輕量級框架和構建“微農”信息服務平臺的過程,特別是MyBatis框架在解決數據持久化過程中的應用,Spring框架在程序解耦過程中的應用,Spring MVC框架在實現功能分離過程中的應用,以及響應式Web技術在“微農”移動端的應用。初步測試表明系統的靈活性和穩定性都很好,為農產品數據價值的挖掘提供了良好的平臺。
關鍵詞:農業;農產品;信息技術;移動開發;數據持久化
中圖分類號:TP311.52? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)34-0004-03
1 引言
目前我國的農業也正在向大數據化農業、智能化農業、信息化農業發展。近些年越來越多的農業大數據平臺被開發應用,支持農業大數據的管理、分析、展現的技術也相繼成熟[1]。本課題的研究就是要構建網絡軟件系統,它可以展示不同社會環境影響下農產品在生產和銷售過程中數據的動態變化模型,能夠提供一種以更加宏觀的角度來統籌農產品銷售的解決方案[2]。這樣一個系統功能比較復雜,不僅涉及信息系統建設還涉及大數據和人工智能領域的技術,因此這樣的系統需要擁有良好的可擴展性和可維護性,這對系統的架構設計提出了較高的要求。 為了解決這個問題本系統就采用SSM輕量級框架進行開發,以保證系統的靈活性。
2 SSM輕量級框架概述
SSM輕量級框架是一種可重用的公共結構半成品,它就像應用程序的“骨架”,開發者可以在“骨架”上進行自己的程序開發,從而構建出符合自己需要的應用程序,它為我們開發應用程序提供了極大的便利[3]。在構建軟件系統的時候需要考慮到軟件本身的功能性、可靠性、可用性、資源利用率、可維護性以及可移植性[4]。如果沒有合適的框架那么就會造成不同程序開發人員寫出的程序風格差異巨大,軟件的質量也參差不齊。SSM輕量級框架為此提供了一種良好的解決方案,它是Spring框架、Sping MVC框架和MyBatis框架整合后的簡稱。Spring 框架降低了程序的耦合性和開發難度,Spring MVC框架將表示層、控制層和模型層分離開來,MyBatis框架建立了實體類和SQL語句的映射,大大提高了程序的靈活性和可擴展性[5]。本系統就是采用SSM輕量級框架開發和構建的。
3 “微農”信息服務平臺概述
“微農”信息服務平臺是基于大數據技術的智慧農產品數據服務平臺。系統旨在利用基于AI的數據預處理、數據挖掘和深度學習等技術,建立科學的數學模型,研究出農產品購銷脫節的內外原因,對農產品的購銷兩端做出趨勢判斷和科學預測,構建更加科學的產業服務平臺,重構更為良性的農產品市場生態系統。該系統集數據采集、數據分析、數據處理、動態預測、社區服務、輔助決策等功能為一體,運用智能計算方法和信息化技術手段來解決農產品在市場銷售中存在購銷脫節的問題。系統分為電腦端的“綜合信息管理系統”和手機端的信息應用系統。電腦端的“綜合信息管理系統”包括數據分析、數據處理、數據展示、動態預測、輔助決策等功能。手機端的信息應用系統包括數據采集、數據展示、動態預測、社區服務等功能。“微農”信息服務平臺功能結構圖如圖1所示。
4 SSM在構建“微農”信息服務中的應用
4.1 “微農”信息服務數據體系的構建
“微農”信息服務數據體系包括基礎數據體系和標簽數據體系等部分構成。基礎數據是跟業務直接相關的對象數據,例如農作物、農產品、用戶、地理信息等相關數據。而標簽數據體系則是建立用戶畫像并進行大數據分析的基礎。指標數據包括用戶屬性維度、用戶行動維度、用戶社交維度等部分[6]。在構建數據體系的時候首先要根據需求分析文件提煉出核心數據對象,再根據數據對象設計對應的數據表。因為后續的數據分析可能涉及數據的多重維度所以在設表結構的時候根據實際情況來選擇窄表與寬表。在構建“微農”信息服務數據體系過程中使用的工具是基于MySQL的數據庫和基于Hive的數據倉庫。MySQL數據庫用來存放和管理元數據、監控數據、預警數據、結果集等相關數據。而Hive數據倉庫用作大批量數據的存儲與處理。事實表、維度表以及相關日志信息都存放在Hive數據倉庫里面。
4.2 Spring 框架在解耦過程中的應用
Spring 框架提供了控制反轉和面向切面編程的功能,所以SSM框架整合中它負責了對數據庫的連接。Spring框架所依賴的JAR包被導入之后,需要在applicationContext.xml配置文件里配置有關數據庫連接、批量生成映射器實現類、AOP事務處理、MyBatis整合等相關內容。通過Service接口和其實現類調用Mapper實現類的增、刪、改、查操作,并在利用這些操作的基礎上完成更為復雜的任務。系統的業務邏輯復雜,如果沒有使用Spring框架,系統組件之間的耦合度會很大。Spring所提供的IoC容器采用依賴注入的方式讓組件在applicationContext.xml配置文件里組織起來,控制權就轉移到applicationContext對象上面。Spring所提供的AOP功能,非主體業務邏輯的功能被分離并在適當的時機在切入點植入增強。因此如何將組件按照Spring框架的規則組織起來就顯得格外重要。此處以基于Spring框架的規則的用戶管理組件的為例,可以用類圖方式表示組件內部類和接口之類的關系。以用戶為例可繪制示例類圖如圖2所示。
4.3 Spring MVC框架在實現功能層次分離過程中的應用
Spring MVC框架被用來實現控制層、表示層、模型層的分離。Spring MVC框架必需的JAR包(如spring-web-3.2.13.RELEASE.jar等)被導入之后,需要在配置文件springmvc-servlet.xml里面做如下配置:首先要配置處理器映射,即掃描所有控制類。其次要配置靜態資源文件,即創建的網頁文件。再次要配置視圖解析器,即網頁文件如何與負責處理業務邏輯的控制類映射起來。使用Spring MVC框架就可以在前端使用響應式Web開發技術來制作符合用戶需要的功能頁面。而在后端使用Java語言來處理業務邏輯。由于系統的界面比較復雜,既包括電腦網頁又包括移動網頁,網頁背后業務邏輯也錯綜復雜,Spring MVC框架處理這個問題就十分方便。基于Servlet的Spring MVC框架是JSP Model2實現方案里結構最清晰的一個,封裝有數據模型和視圖信息的ModelAndView對象被作為Spring MVC控制器的返回對象,負責解析的視圖解析器將邏輯視圖與真正負責顯示的前端網頁建立了有效的映射關系。
4.4 MyBatis框架在解決數據持久化過程中的應用
首先,導入MyBatis框架所依賴的jar文件(mybatis-3.2.2.zip)到項目文件里面,這些jar文件為解決數據持久化提供了類文件支持。其次,與數據庫中所有表對應的POJO類被建立起來。這些POJO類中的屬性與數據表的屬性字段有映射關系,但也并非完全一致,尤其是涉及數據表的外鍵參照,POJO類將以它所參考的表所映射的類對象為屬性。POJO類還包括有屬性所對應的getter、setter方法。與數據表對應的Mapper接口和Mapper配置文件也需要被創建,在Mapper接口中定義與數據表操作相關的增、刪、改、查等操作。Mapper接口與Mapper配置文件配合使用,Mapper配置文件擁有強大的SQL映射語句,可以大大減少程序代碼量。由于系統涉及的數據表眾多,如果沒有MyBatis框架來解決數據持久化的業務邏輯,那么系統需大量代碼來處理跟數據基礎操作相關的內容,這會帶來代碼的臃腫和重復。MyBatis框架封裝了數據基礎操作,使得程序代碼更加簡潔。
5 響應式Web技術在“微農”移動端的應用
手機端的信息應用系統包括數據采集、數據展示、動態預測、社區服務等功能。移動端的程序對整個系統來說至關重要,隨著社會的發展,手機(或平板)的應用比PC機更為廣泛,能否提供功能和界面良好的移動端應用程序是項目成敗的關鍵。移動端的開發技術主要有基于Android的App開發、基于MAC OS的App開發以及基于移動網頁開發。為了提高系統的靈活性,這里采用移動網頁的開發技術,因為采用這種技術可以避免不同設備的操作系統差異帶來的不兼容。由于移動設備類型多樣,它們的屏幕大小也各不相同,因此系統采用了基于Bootstrap的響應式Web技術[7]。Bootstrap的核心文件bootstrap.min.css以及響應Web所需要jQuery文件jquery-3.2.1.min.js被提前導入到系統網頁所需的資源文件夾里面。利用Bootstrap所提供的布局和組件構建響應式移動網頁,從而實現不同屏幕有不同的顯示風格。如果每個頁面都要制作電腦端、平臺端和手機端的話,那么就會系統的靈活性就會降低,同時還會帶來代碼冗余的問題。大量布局不同而內容相同的網頁也會降低網站在搜索引擎中的權重,不利于以后系統的市場推廣[8]。
6 “微農”信息服務的初步運行效果
系統采用Tomcat作為系統的服務器,將系統部署在服務器上面。系統管理員可通過專線網絡訪問該系統。手機端的用戶采用掃碼的方式訪問本系統的應用端軟件,應用端軟件和電腦端的信息系統向網絡數據庫更新數據。在運行過程中,系統的可用性、負載能力、移植性、實時響應都是被重點關注的測試方面。經過測試達到了初步的效果。系統服務器端的初步運行效果如圖3所示。
使用平板訪問系統和使用手機訪問系統所看到的布局并不相同,但是兩種設備均能完成對系統的使用,這便是響應web技術在系統兼容性上的應用。使用瀏覽器掃描二維碼之后就可以進入系統的入口界面,系統的導航欄目包括首頁、糧油、菌類、肉類、蔬菜、水果、林產品、花卉、其他等內容。使用搜索功能可以搜索到整個系統的商品信息。系統也提供了災害、扶貧、發現、愛心、滯銷、特價、附近等快速通道。系統在iPad平板上的運行效果如圖4所示。
手機在現實生活中的應用更為廣泛,所以系統針對手機端用戶的界面應更為簡潔和友好。手機端的使用方法與平板電腦相同,但是使用手機端進入系統之后會發現,導航欄目已經被隱藏成一個圖標,點擊圖標則可以展開導航欄目。在商品展示欄目中,原來在平板上顯示三列的商品信息也在手機端壓縮成了一行。系統在華為手機端的運行效果如圖5所示。
7 結束語
使用SSM輕量級框架開發出來的“微農”信息服務平臺無論是在系統的功能上還是性能上都有優異的表現,程序的開發難度大大降低,程序的可維護性和可擴展性顯著提高。經過初步的測試,系統達到了預期的目標。接下來系統將與大數據技術和智能分析技術深度對接,從而使系統向云端化和智能化轉變。
參考文獻:
[1] 董尊驊.基于SSM框架的大米原料品質指標數據庫平臺的設計與實現[J].南方農機,2021,52(11):9-10.
[2] 胡歷芳,唐博文,曾寅初.基于Heckman模型的農產品購銷商借貸需求行為分析[J].農業經濟問題,2017,38(4):75-84,111.
[3] 肖睿.SSM輕量級框架應用實戰[M].北京:人民郵電出版社,2018.
[4] 劉鳳華.軟件項目管理[M].北京:中國鐵道出版社,2018.
[5] 周永政,劉莎莎,姜紅花.基于SSM框架的監考安排管理系統設計與實現[J].電腦知識與技術,2021,17(20):59-60,66.
[6] 趙宏田.用戶畫像方法論與工程化解決方案[M].北京:機械工業出版社,2021.
[7] 強力,李灶娥,魏丹丹,等.SSM框架下的果蔬信息管理系統設計[J].福建電腦,2021,37(9):99-101.
[8] 黑馬程序員.Bootstrap響應式Web開發[M].北京:人民郵電出版社,2021.
【通聯編輯:謝媛媛】