胡世洋,賴森林



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