国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

SSH框架在云制造服務(wù)平臺開發(fā)中的應(yīng)用*

2012-07-10 08:43:00劉坤彪
關(guān)鍵詞:服務(wù)平臺代碼組件

劉坤彪 姜 玲

(1.武漢城市職業(yè)學(xué)院,湖北 武漢 430064;2.武漢交通職業(yè)學(xué)院,湖北 武漢 430065)

隨著市場競爭的日益激烈,我國廣大中小企業(yè)正普遍面臨產(chǎn)品研發(fā)能力不足、經(jīng)營管理水平落后、產(chǎn)業(yè)鏈協(xié)作能力低下等嚴(yán)峻挑戰(zhàn),迫切需要利用信息化技術(shù)來提升企業(yè)的綜合競爭能力。近年來,隨著云計算、物聯(lián)網(wǎng)等技術(shù)的發(fā)展和日趨成熟,一種網(wǎng)絡(luò)化制造新模式——云制造應(yīng)運而生。中小企業(yè)云制造服務(wù)平臺主要包括統(tǒng)一用戶管理、制造資源注冊發(fā)布、制造需求發(fā)布、制造服務(wù)注冊中心、制造服務(wù)撮合管理、制造服務(wù)交易管理、制造服務(wù)業(yè)務(wù)管理、業(yè)務(wù)信用評估與分析、行業(yè)性知識聚集與服務(wù)網(wǎng)絡(luò)化社區(qū)、服務(wù)平臺系統(tǒng)管理等功能。該平臺將成為我國中小企業(yè)充分利用和共享制造資源,提升產(chǎn)品設(shè)計、工藝、制造、營銷業(yè)務(wù)服務(wù)能力的有效途徑。為了盡可能提高系統(tǒng)各功能模塊的獨立性、擴展性,系統(tǒng)采用多層架構(gòu),使得各個模塊的變化盡可能少地影響其它模塊,提高系統(tǒng)的擴展性和可維護性。SSH框架在平臺的多層架構(gòu)上很好地滿足了開發(fā)要求。

采用Struts2、Spring、Hibernate整合技術(shù)框架構(gòu)建云制造服務(wù)平臺,從而對各類制造資源和服務(wù)資源進行統(tǒng)一的集中智能化管理,通過網(wǎng)絡(luò)和一個云制造平臺中間件,將制造生命周期的前期、中期、后期提供給用戶,提供一種可隨時獲取、按需使用的廉價優(yōu)質(zhì)的服務(wù)。云制造服務(wù)平臺實現(xiàn)了制造業(yè)向服務(wù)業(yè)的轉(zhuǎn)換,將為我國制造企業(yè)充分利用、共享社會制造資源,提升企業(yè)綜合競爭能力提供重要支撐手段。

1 SSH整合框架體系

1.1 Struts2框架

Struts2框架主要應(yīng)用在控制層和表現(xiàn)層。Struts2控制器分為核心控制器FilterDispatcher與業(yè)務(wù)控制器Action,在web應(yīng)用中核心控制器負(fù)責(zé)攔截所有的用戶請求,業(yè)務(wù)控制器獲取Web請求中的信息、Web應(yīng)用的相關(guān)信息和用戶會話信息,并根據(jù)這些信息進行業(yè)務(wù)邏輯處理,最后返回代表處理結(jié)果的字符串。此外,Struts2框架提供了強大的標(biāo)簽庫,從而大大減少了JSP頁面的腳本編碼,而且可以處理表現(xiàn)層的數(shù)據(jù),如輸出表單數(shù)據(jù)的校驗信息。通過自定義標(biāo)簽創(chuàng)建的JSP表單,可以實現(xiàn)對用戶數(shù)據(jù)的封裝,同時自定義標(biāo)簽還提供了像模板定制等多種顯示功能,在UI(User Interface)開發(fā)中具有很大的優(yōu)勢。Struts2框架使得Web應(yīng)用的MVC(Model View Controller)之間松散耦合。

1.2 Hibernate框架

對于一個復(fù)雜的Web應(yīng)用,后端數(shù)據(jù)的持久化是影響其性能的最主要因素。為了減少數(shù)據(jù)庫變化對“業(yè)務(wù)層”的影響,使用ORM(Object Relation Mapping,對象關(guān)系映射)開源框架Hibernate,它封裝了數(shù)據(jù)訪問細(xì)節(jié),為業(yè)務(wù)邏輯層提供了面向?qū)ο蟮腁PI,所以Java程序員可以使用面向?qū)ο蟮木幊趟季S來操縱數(shù)據(jù)庫。Hibernate允許將數(shù)據(jù)庫中的信息存放入對象,這樣可以在連接斷開的情況下把這些數(shù)據(jù)顯示到UI層,而那些對象也可以返回給持久層,從而在數(shù)據(jù)庫里更新。Hibernate是當(dāng)前Java社區(qū)中事實上的對象關(guān)系映射工業(yè)標(biāo)準(zhǔn),它采用POJO(Plain Old Java Object,簡單的傳統(tǒng)Java對象)編程模型,從而允許持久對象擁有復(fù)雜的結(jié)構(gòu),如混合類型、集合、屬性以及用戶自定義的類型,屏蔽了底層關(guān)系數(shù)據(jù)庫復(fù)雜的細(xì)節(jié),降低了編寫應(yīng)用程序的復(fù)雜度。

1.3 Spring框架

Spring能有效地組織J2EE(Java2Enterprise Edition)應(yīng)用各層的對象。不論是控制層的Action對象,還是業(yè)務(wù)層的Service對象,還是持久層的DAO對象,都可在Spring的管理下有機地協(xié)調(diào)和運行。Spring將各層的對象以松耦合的方式組織在一起,Action對象無須關(guān)心Service對象的具體實現(xiàn),Service對象也無須關(guān)心持久層的DAO對象的具體實現(xiàn),各層對象的調(diào)用完全面向接口。這一切都?xì)w功于Spring的核心機制——依賴注入,它是指程序在運行過程中,如果調(diào)用者需要調(diào)用另一個對象協(xié)助時,無須在代碼中創(chuàng)建被調(diào)用者,而是依賴于外部的注入將Bean與Bean以配置文件的方式組織在一起。在進行模塊設(shè)計時,高層的抽象模塊通常是與業(yè)務(wù)邏輯相關(guān)聯(lián)的,它應(yīng)該具有可重用性,而不依賴于低層的實現(xiàn)模塊。Spring從分考慮到了與Hibernate的協(xié)同工作,通過內(nèi)置的Hibernate支持類(HibernateDao-Support),可以在保持Hibernate強大功能的同時,以簡化的方式使用Hibernate操作數(shù)據(jù)庫。作為一個全方位的應(yīng)用程序框架,Spring通過AOP(Aspect Oriented Programming,面向切面編程)針對業(yè)務(wù)處理過程中的切面進行提取,所面對的是處理過程中的某個步驟或階段,以獲得各部分之間低耦合性的隔離效果。

2 云制造服務(wù)平臺體系架構(gòu)

圍繞“分散資源集中使用,集中資源分散服務(wù)”的云制造思想,為使分布式的資源能夠充分利用和共享,必需建立一套完整的體系架構(gòu),以保證企業(yè)云制造服務(wù)平臺能夠從技術(shù)的先進性、管理的科學(xué)性、運行的合理機制、友好的服務(wù)等多方面提高企業(yè)的競爭力。中小企業(yè)云制造服務(wù)平臺的功能結(jié)構(gòu)如圖1所示。

圖1 中小企業(yè)云制造服務(wù)平臺的功能結(jié)構(gòu)

3 基于SSH的系統(tǒng)分層結(jié)構(gòu)

圖2 基于SSH的系統(tǒng)分層結(jié)構(gòu)

4 數(shù)據(jù)庫設(shè)計

本文以關(guān)鍵字搜索模塊的開發(fā)為實例,分析SSH在整個云制造服務(wù)平臺中的應(yīng)用。關(guān)鍵字搜索模塊的作用是根據(jù)用戶輸入的關(guān)鍵字在平臺內(nèi)查找與之匹配的云制造服務(wù)資源信息。在MySQL中為本系統(tǒng)創(chuàng)建數(shù)據(jù)庫cloud,然后在cloud中創(chuàng)建數(shù)據(jù)表release(見表1)。

表1 數(shù)據(jù)表release結(jié)構(gòu)

5 基于SSH的系統(tǒng)實施

5.1 配置web應(yīng)用

在web.xml中主要增加Struts2和Spring框架的支持,配置文件的主要內(nèi)容如代碼1所示。

代碼1

5.2 在Spring框架中集成Hibernate

5.2.1 配置數(shù)據(jù)庫連接

Spring對ORM的一個重要支持就是提供統(tǒng)一的數(shù)據(jù)源管理機制,即在Spring容器中定義數(shù)據(jù)源、指定映射文件和Hibernate屬性等。在MyE-clipse開發(fā)環(huán)境中加載Spring后,在應(yīng)用工程的WEB-INF文件夾下自動生成applicationContext.xml文件,即Spring的默認(rèn)配置文件,在該文件中配置數(shù)據(jù)庫連接的主要內(nèi)容如代碼2所示。

代碼2

5.2.2 配置SessionFactory

Spring為創(chuàng)建SessionFactory實例提供了一個FactoryBean,通過指定該Bean的屬性,就可以獲得SessionFactory對象,它能以完全面向?qū)ο蟮姆绞讲倏v數(shù)據(jù)庫。在applicationContext.xml文件中配置SessionFactory的主要內(nèi)容如代碼3所示。

代碼3

5.2.3 在Spring框架中集成Struts2

組件Action是Struts框架的核心部分,它用于處理業(yè)務(wù)邏輯。Spring容器采用裝配Bean的方法對所有action組件進行統(tǒng)一管理,以實現(xiàn)對Struts2框架的集成。針對搜索模塊,在applicationContext.xml文件中配置Struts2的主要內(nèi)容如代碼4所示。

代碼4

5.3 實現(xiàn)DAO組件層

在DAO模式下,將所有的數(shù)據(jù)庫原子操作都封裝在DAO層內(nèi),所有對數(shù)據(jù)表的CRUD操作都由對應(yīng)的DAO組件完成。為本系統(tǒng)搜索模塊創(chuàng)建的DAO類InfoManage.java如程序1所示。

程序1 InfoManage.java

5.4 實現(xiàn)邏輯業(yè)務(wù)處理的Action組件層

根據(jù)本系統(tǒng)對搜索模塊功能的要求,我們可以設(shè)計對用戶輸入的關(guān)鍵字進行有效性驗證的CheckAction類、執(zhí)行查找的SeekAction類、實現(xiàn)數(shù)據(jù)分頁的PageAction類、查找所有資源的AllResource類以及查找單一資源的getResource類。以上Action類的關(guān)鍵實現(xiàn)代碼分別如程序2、程序3、程序4、程序5、程序6所示。

程序2 CheckAction.java

程序3 SeekAction.java

程序4 PageAction.java

程序5 AllResource.java

程序6 getResource.java

5.5 配置Action組件

為了使模型組件Action和視圖組件關(guān)聯(lián)起來,就需要通過Struts2框架的配置文件struts.xml對Action組件進行配置。針對本系統(tǒng)的搜索模塊的Action配置的主要內(nèi)容如代碼5所示。

代碼5

6 結(jié)論

通過對本系統(tǒng)搜索匹配模塊功能基于SSH框架的分層設(shè)計與編碼實現(xiàn),我們對SSH框架有了更深刻的認(rèn)識。Struts2較好地解決了web應(yīng)用中視圖、控制器和模型組件間的關(guān)聯(lián),但對于特別復(fù)雜的云制造服務(wù)Web平臺,還顯得不夠。Hibernate可以幫助web應(yīng)用實現(xiàn)更加高效、強大的數(shù)據(jù)持久化,確保系統(tǒng)的性能和穩(wěn)定,Spring基于“依賴注入”,可以更好地管理整個web應(yīng)用的各種資源,實現(xiàn)各組件之間的松散耦合。因此,Struts2、Spring和Hibernate集成,可以為企業(yè)搭建更加優(yōu)秀的web平臺,只有深入領(lǐng)會SSH框架設(shè)計思想的精髓,才能在實踐中靈活運用。

[1]蒲子明,許勇,等.Struts2+Hibernate+Spring整合開發(fā)技術(shù)詳解[M].北京:清華大學(xué)出版社,2010:502-503.

[2]郝玉龍,遲健男.輕松掌握Struts2[M].北京:清華大學(xué)出版社,2011:237-239.

[3]王偉平.Struts2完全學(xué)習(xí)手冊[M].北京:清華大學(xué)出版社,2011:210-212.

猜你喜歡
服務(wù)平臺代碼組件
密碼服務(wù)平臺
打造一體化汽車服務(wù)平臺
無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
能源工程(2022年2期)2022-05-23 13:51:50
論基于云的電子政務(wù)服務(wù)平臺構(gòu)建
新型碎邊剪刀盤組件
重型機械(2020年2期)2020-07-24 08:16:16
U盾外殼組件注塑模具設(shè)計
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
子长县| 通城县| 都兰县| 多伦县| 右玉县| 玛纳斯县| 镇赉县| 祁门县| 元阳县| 浦东新区| 黄平县| 朔州市| 津市市| 茂名市| 雷波县| 迭部县| 武定县| 高台县| 扎赉特旗| 磐石市| 东丽区| 石嘴山市| 潼关县| 新津县| 泸溪县| 新乡市| 阿荣旗| 修文县| 什邡市| 榆树市| 福泉市| 孙吴县| 班戈县| 额尔古纳市| 改则县| 克拉玛依市| 会昌县| 连江县| 永春县| 汾西县| 嘉善县|