幫助IT團隊快速構建符合jt808協議部標的基于java技術的GPS和視頻平臺(2379423771@qq.com)

          基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架構建高性能企業級的部標GPS監控平臺

          開發企業級的部標GPS監控平臺,投入的開發力量很大,開發周期也很長,選擇主流的開發語言以及成熟的開源技術框架來構建基礎平臺,是最恰當不過的事情,在設計之初就避免掉了技術選型的風險,避免以后在開發過程中,不斷的填坑走彎路,以至于整個團隊被坑埋掉。做GPS平臺這么多年,以前就了解到一些開發團隊過于關注某一種語言的優勢,比如過于選用GO,Erlang,python,php等技術,最后團隊熟悉這些技術的關鍵人員離職了,都沒人接手,不能不說是個悲劇。所以說平臺的技術架構選型要注重的是穩健,均衡而不是偏激,而SpringMVC4, Mybatis4, Hibernate4就是GPS監控平臺軟件開發的理想框架選擇。

          廢話少說,我們現在構建基于BS網頁Web模式的部標GPS監控平臺,基于主流的J2EE三層模型,主要的技術選型如下:

          1.基礎容器框架 spring4

          2.Web框架 Springmvc4

          3.ORM實體與關系數據庫映射框架 hibernate4

          4.SQL查詢框架 mybatis3

          5.單元測試 junit4

          6.日志   log4j

          7.定時任務框架Quartz 

          系統運行環境:tomcat7+ 、JDK7+、MySql 5.7/ SQSERVER2005/Oracle9

           

          GPS監控的web平臺對技術的要求如下:

          1.實時監控和部標808協議的幾十種終端指令的上傳下達,百度地圖車輛位置監控,地圖操作等功能需要頻發的對服務器發送基于ajax的request,返回json數據,基本上是重度使用ajax請求和Json傳輸。

          2.Web服務器需要應對網頁客戶端重度的request請求,性能要求較高,在mvc框架開發的時候,一定要避免內存泄漏,因為在頻繁的request請求調用之下,小小的內存泄漏,會一點一點積累,直至耗掉tomcat的內存。

          3.安全性上,框架至少要能夠防御CSRF、XSS和SQL注入攻擊

           

          Web框架我們采用sprngMVC4, 主要的考慮如下:

          1.全注解環境,采用springmvc4,替xml配置,避免掉了一大堆的xml配置,對應URL的映射和request參數的映射直接在方法中通過注解配置;

          2.spring mvc是基于方法的設計,controller是單例模式,而sturts是基于類,每次發一次請求都會實例一個action,每個action都會被注入屬性,而spring基于方法,粒度更細,性能上更高一籌;

          3.SpringMVC框架的安全性上要高于struts,詳見百度搜索。

           

          數據庫ORM的框架要求如下:

          1.能夠比較靈活的適應主流的數據庫,如mysql, mssqlserver, oracle等,現在的開發團隊和開發人員在開發的時候,幾乎沒有人關注這個問題,基本都是在一個數據庫上吊死,而作為一個平臺的開發,為應對不同的客戶要求,團隊的開發力量有限,不能一個數據庫一個版本,這樣開發和維護、升級、測試成本就急速的升高,所以我們追求的是一下幾個原則:

          1)不用存儲過程和觸發器;

            很多開發團隊都是重度的存儲過程和觸發器的使用者,連簡單的查詢分頁都要用存儲過程,一旦開發人員離職,這些存儲過程和觸發器都像天書一樣,難以維護,一般我們的代碼都是在SVN基于配置庫進行版本管理,而存儲過程和觸發器卻脫離這些之外,存儲過程和觸發器如果有bug出現問題,在生產環境上,很難進行跟蹤,web容器的日志記錄只能跟蹤到java代碼級別,剩下就需要DBA來配合了。

          2)使用Hibernate4 框架,實體類和數據庫的映射都在類和屬性方法上完成;基于Hibernate的配置就可以輕松切換到其他數據庫。

          3)采用采用Mybatis的物理分頁插件,通過攔截器的方式,在開發人員編寫的SQL上進行攔截,并自動包裝上各個數據庫的物理分頁代碼,可以支持多個主流數據庫的物理分頁查詢方法。

          4)采用mybatis和log4j,可以很方便的打印SQL日志,方便調試跟蹤。

           

          基于Maven構建多模塊項目工程,打造干凈的依賴庫

            我們在開發GPS監控平臺的時候,一般都是基于業務功能和職責,將業務分為多個模塊,各個模塊之間相互獨立,每個模塊可以獨立運行或者作為獨立的公共類庫被其他模塊所依賴如Dao、Service等

            實際上一個部標GPS監控平臺,里面包含了多個業務功能模塊,如部標808GPS服務器,web網頁客戶端,809轉發服務器,移動API,位置服務,計算服務等等。

            由于多個模塊,都需要依賴這些開發框架,而開源框架又有各自的依賴的jar包,他們的版本搭配非常關鍵,例如springmvc4用的jackson框架是2.1, springmvc3 用的jackjson框架是1.x版本,你如果搭配錯了,項目運行不起來了。再比如spring和mybatis, hibernate之間的無縫結合,雖然是互相搭配,但你如果用的版本不一致,也會造成項目出錯。未來我們想升級某個框架,比如從spring4升級到spring5,也是不是單純的只升級spring4, 而是要考慮hibernate, mybatis等框架的聯動升級。

            所以采用Maven來提供工程的中央倉庫,所有的子模塊共享一個POM文件,避免各個子模塊各自重復依賴一大堆jar包。Maven的多模塊其實就是按照層級的管理構建,項目包含一個pom.xml文件和若干個模塊,每個模塊有一個單獨的pom.xml文件,通過pom的依賴和繼承關系來構建項目層次。一旦建好以后,就可以終身享用,工作量會大大降低,jar包版本不一致的造成的項目風險會大大降低。

            而整個項目工程的拷貝復制就更加簡單,里面不再有大量的jar包,開發人員只需從配置庫上更新最新的代碼后,配置庫中不再有大量的開源框架jar包,而是從Maven中央倉庫中自動更新。建立工程的時候,直接選擇導入Maven工程,一鍵將所有的模塊導入到新的workspace當中,非常方便。

           購買GPS平臺或GPS監控系統源碼,聯系我2379423771@qq.com

          工程目錄和包命名規范

          我現在根據Spring的注釋,包的命名,當然這首先建立在你對三層架構的熟悉上。

          com.ltmonitor.jt808.app    808服務器應用程序

          com.ltmonitor.jt809.app    808服務器應用程序

          com.ltmonitor.web.vo       用于web頁面傳遞的對象

          com.ltmonitor.service.vo   用于服務傳遞的對象

          com.ltmonitor.controller   MVC中的控制,Spring的注釋@controller

          com.ltmonitor.controller.map        地圖表現層

          com.ltmonitor.controller.terminalcommand 終端指令

          com.ltmonitor.entity     實體類

          com.ltmonitor.entity.jt808 專用于808gps服務器的實體類

          com.ltmonitor.entity.jt809 專用于809服務器的實體類

          com.ltmonitor.dao  Dao層

          com.ltmonitor.servce service層

          com.ltmonitor.server  gps服務器層

          。。。

          。。。。。

          。。。。

          一下還有很多,就不一一列舉。

          交通部部標監控平臺

          Java平臺基于struts2技術框架的平臺,參見基于Struts+Spring+Hibernate+Ibatis+Quartz+Mina框架構建部標監控平臺

          .NET平臺,參見:基于Asp.NET MVC構建GPS部標平臺

          posted on 2016-09-13 08:09 Speed 閱讀(3584) 評論(0)  編輯  收藏 所屬分類: J2EEHibernate & Ibatisjt808協議和java技術

          導航

          留言簿(15)

          隨筆分類

          值得一看的博客

          積分與排名

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 甘南县| 浮山县| 大新县| 岳阳县| 湖南省| 大洼县| 贡嘎县| 浮梁县| 晋宁县| 壶关县| 宁德市| 宣汉县| 罗源县| 修武县| 巴东县| 社旗县| 潼南县| 淮阳县| 建瓯市| 德江县| 秭归县| 沈阳市| 澎湖县| 和硕县| 英德市| 遂昌县| 定西市| 嘉鱼县| 涟水县| 庆阳市| 九台市| 顺义区| 兖州市| 兰坪| 四会市| 广汉市| 革吉县| 南投县| 灯塔市| 宣城市| 福清市|