魏全紅 賈 鑫
(邯鄲職業(yè)技術(shù)學(xué)院,河北 邯鄲 056005)
?
基于SSH技術(shù)的
中小型生產(chǎn)管理平臺的開發(fā)與設(shè)計(jì)
魏全紅 賈 鑫
(邯鄲職業(yè)技術(shù)學(xué)院,河北 邯鄲 056005)
在針對邯鄲中小企業(yè)管理模式改革創(chuàng)新的背景下,為了提高企業(yè)生產(chǎn)和管理的信息化水平,以河北杰強(qiáng)標(biāo)準(zhǔn)件有限責(zé)任公司為依托,結(jié)合企業(yè)現(xiàn)狀進(jìn)行需求分析和數(shù)據(jù)庫設(shè)計(jì),采用SSH( Struts2 + Spring + Hibernate) 架構(gòu)搭建中小型企業(yè)生產(chǎn)管理平臺,使用戶界面、業(yè)務(wù)處理和數(shù)據(jù)訪問相分離,開發(fā)設(shè)計(jì)企業(yè)管理系統(tǒng)的生產(chǎn)流程管理、計(jì)劃制定管理、產(chǎn)品訂單管理、庫存管理、費(fèi)用成本核算等。
Struts2;Spring;Hibernate;生產(chǎn)管理平臺
隨著企業(yè)生產(chǎn)需求不斷擴(kuò)張、市場迅速發(fā)展、復(fù)雜業(yè)務(wù)不斷擴(kuò)充,企業(yè)管理規(guī)范化、網(wǎng)絡(luò)化、信息化變得越來越重要,為了適應(yīng)企業(yè)新型生產(chǎn)管理的需要,充分合理利用網(wǎng)絡(luò)資源,提高生產(chǎn)管理的質(zhì)量,一套企業(yè)生產(chǎn)管理現(xiàn)代化平臺的構(gòu)建是必不可少的。據(jù)此,本文提出一種基于SSH 框架( Struts2 + Spring + Hibernate) 構(gòu)建的解決方案。該框架將整個系統(tǒng)分為表現(xiàn)層、業(yè)務(wù)處理層、 數(shù)據(jù)持久層和數(shù)據(jù)庫層,以松耦合,代碼分離的特點(diǎn),設(shè)計(jì)適合于中小企業(yè)生產(chǎn)管理業(yè)務(wù)平臺,系統(tǒng)方便操作,適應(yīng)性強(qiáng),具有較高的穩(wěn)定性。
本系統(tǒng)開發(fā)模式采用主流B/S(Browser/Server)體系架構(gòu),Application Server以輕量級Tomcat 7.0.42作應(yīng)用服務(wù)器,關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)采用主流Microsoft SQL Server 2005作為后臺數(shù)據(jù)庫。選擇MyEclipse 6.0作為開發(fā)工具,Web應(yīng)用程序用SSH(Struts2 + Spring + Hibernate)構(gòu)建框架,并結(jié)合 Flex、 Ajax、JavaScript 等技術(shù)進(jìn)行系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。其中 SSH 是一種多層 Web 應(yīng)用程序架構(gòu),將 Struts2、 Hibernate 和Spring 這3個當(dāng)前流行的Java Web開源框架進(jìn)行整合,從而構(gòu)建出靈活、易于擴(kuò)展的多層 Web 應(yīng)用程序。
Struts可以分為 Struts1框架和Struts2框架。本系統(tǒng)采用Struts2框架,負(fù)責(zé)接收用戶傳來的信息,控制流程返回結(jié)果給用戶。Hibernate負(fù)責(zé)將相關(guān)信息持久化到數(shù)據(jù)庫之中。Struts2是WebWork + Struts的結(jié)合,以WebWork為核心,采用攔截器的機(jī)制來處理用戶的請求,允許用戶的業(yè)務(wù)邏輯控制器與Servlet API分離,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與Servlet API完全脫離開。
Spring為系統(tǒng)提供IOC容器,將對象之間的依賴關(guān)系交由Spring進(jìn)行控制, 避免硬編碼所造成的過度程序耦合。多層架構(gòu)把界面表現(xiàn)、業(yè)務(wù)邏輯、數(shù)據(jù)庫操作等功能完全分離,大大降低彼此的耦合與影響,從而實(shí)現(xiàn)松耦合和良好的可拓展性、可維護(hù)性。采用該框架的優(yōu)勢主要體現(xiàn)在:系統(tǒng)后期維護(hù)非常方便、對接系統(tǒng)二次開發(fā)快捷省時,從而極大節(jié)約系統(tǒng)成本?;趯truts2、Spring 和Hibernate綜合研究分析,所以采用SSH框架技術(shù)開發(fā)適應(yīng)于中小企業(yè)的生產(chǎn)管理平臺。
在Web系統(tǒng)部分采用SSH的框架結(jié)構(gòu),在職能上分為表現(xiàn)層、業(yè)務(wù)層、持久層以及領(lǐng)域?qū)?。采用?Struts2框架作表現(xiàn)層,用Spring框架作業(yè)務(wù)層,數(shù)據(jù)持久層用Hibernate框架實(shí)現(xiàn),將操作數(shù)據(jù)庫轉(zhuǎn)化為操作對象, 同時對數(shù)據(jù)庫操作進(jìn)行封裝。
1.系統(tǒng)需求分析設(shè)計(jì)
本系統(tǒng)以河北省永年杰強(qiáng)標(biāo)準(zhǔn)件有限責(zé)任公司為依托,結(jié)合企業(yè)生產(chǎn)管理實(shí)際需要,該平臺核心功能主要包括:
(1)入出庫管理。入出庫管理主要分入庫管理和出庫管理,入出庫管理的主要對象是企業(yè)生產(chǎn)中的成品和半成品,同時該模塊中還包括對成品或半成品單據(jù)查詢。
(2)庫存管理。庫存管理主要包括庫存報(bào)警、庫存查詢和庫存成本統(tǒng)計(jì)等。
(3)訂單管理。訂單管理主要包括工序訂單、新增訂單、訂單審核、訂單注銷和訂單流水查詢。
(4)模具管理。模具管理主要包括模具借出、模具歸還、模具報(bào)廢和模具查詢。
(5)廢品庫管理。廢品庫管理主要包括廢品登記和廢品查詢。
(6)財(cái)務(wù)工資。財(cái)務(wù)工資管理主要包括工資設(shè)置、工資發(fā)放、工資查詢、原始資金、公司收益、往來客戶資金查詢。
通過以上核心功能描述分析,得出生產(chǎn)管理平臺的功能結(jié)構(gòu)如圖 1所示:
2.數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)
數(shù)據(jù)庫的庫表構(gòu)架分析設(shè)計(jì)在數(shù)據(jù)庫開發(fā)前期的設(shè)計(jì)過程中占有非常重要的地位,一個好的信息系統(tǒng),離不開一個層次清晰,功能完善的后臺數(shù)據(jù)庫結(jié)構(gòu)。
平臺數(shù)據(jù)庫通過概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì),最終得到的數(shù)據(jù)庫表有:用戶表(SysUser)、客戶表(Guest)、產(chǎn)品表(Production)、工序表(Process)、模具表(Mold)、入庫表(InStock)、入庫明細(xì)表(InStockDetail)、出庫表(OutStock)、出庫明細(xì)表(OutStockDetail)、庫存表(Stock)、配料表(Stuff)、配料明細(xì)表(StuffDetail)、訂單表(Order)等共21個?,F(xiàn)以產(chǎn)品表和入庫表,顯示數(shù)據(jù)庫表結(jié)構(gòu)如表1、表2所示:
表1 產(chǎn)品表(Production)
字段名稱數(shù)據(jù)類型長度是否為空是否主外鍵PIDVARCHAR12NOTPKPNameVARCHAR20NOTPPhoneticCodeVARCHAR10NOT...............
表2 入庫表(InStock)
字段名稱數(shù)據(jù)類型長度是否為空是否主外鍵ISIDVARCHAR12NOTPKGIDVARCHAR20NOTFKInStockDateTimeDateTimeNOTInStockMoneyDecimal7,2NOT...............
在數(shù)據(jù)庫設(shè)計(jì)中,為了保證數(shù)據(jù)庫的參照完整性,表之間還需要建立外部鍵Foreign Key。例如:在建立顧客表(Guest)之后,建立入庫表的時候,需要在入庫表中建立顧客編號字段GID,這時就需要在入庫表InStock中將字段GID設(shè)計(jì)為外鍵,來保證數(shù)據(jù)庫中數(shù)據(jù)庫參照完整性。
1.系統(tǒng)功能設(shè)計(jì)
系統(tǒng)的功能設(shè)計(jì)采用常見的三層結(jié)構(gòu)。數(shù)據(jù)訪問層用Hibernate實(shí)現(xiàn),持久化類和映射文件從數(shù)據(jù)表反向生成,DAO類的增加、刪除、修改和查詢操作直接借助于父類HibernateDaoSuppert來實(shí)現(xiàn)。業(yè)務(wù)邏輯層在Action和DAO類之間起連接作用,由一些Service類組成,在Spring的應(yīng)用上下文applicationContext.xml文件中配置數(shù)據(jù)庫的連接,會話管理和業(yè)務(wù)類。利用Spring的Ioc容器整合表現(xiàn)層、業(yè)務(wù)層和數(shù)據(jù)訪問層,使用AOP實(shí)現(xiàn)DAO類的事務(wù)控制。而Web表現(xiàn)層主要通過Structs2和JSP來共同實(shí)現(xiàn),并結(jié)合Spring把Action類的實(shí)例化對象交與SpringIoc容器。
2.訂單子系統(tǒng)功能描述
以訂單授理模塊來說明系統(tǒng)的開發(fā)及軟件組成。
(1)用戶通過網(wǎng)絡(luò)登錄系統(tǒng)后便可以制作訂單,并等待審核通過;
(2)訂單審核通過后進(jìn)入正常訂單出入庫流程操作;
(3)訂單一旦提交后,該訂單用戶便無權(quán)進(jìn)行修改編輯操作;
(4)用戶提交訂單后,如果想編輯修改訂單,可以提出注銷訂單的申請。
3.訂單子系統(tǒng)模塊結(jié)構(gòu)
(1)視圖層:addOrder.jsp新增訂單,queryOrder.jsp查詢訂單,editOrder.jsp編輯修改訂單,deleteOrder.jsp刪除訂單,OderAction類;
(2)業(yè)務(wù)邏輯層:OrderService接口和OrderServiceimpl類;
(3)數(shù)據(jù)訪問層:OrderDao接口和OrderDaoImpl,Order、OrderDetail持久化類和Order.hbm.xml、OrderDetail.hbm.xml映謝文件。系統(tǒng)配置與框架通過Web.xml的加載完成,而功能模塊的配置主要通過Struts.xml實(shí)現(xiàn),而且完成與Spring的整合,使得Spring可以通過Web路徑獲取Spring的上下文applicationContext。
本文通過河北杰強(qiáng)有限責(zé)任公司項(xiàng)目,采用SSH技術(shù),從項(xiàng)目需求、項(xiàng)目設(shè)計(jì)到項(xiàng)目實(shí)施等工作,闡述了SSH框架技術(shù),并整合了Struts2、Spring和Hibernate三個開源框架,實(shí)現(xiàn)了一個適應(yīng)于中小企業(yè)的生產(chǎn)管理系統(tǒng)。實(shí)踐表明,應(yīng)用SSH技術(shù)架構(gòu)進(jìn)行Web應(yīng)用程序的開發(fā),提高了系統(tǒng)的開發(fā)效率及系統(tǒng)的可維護(hù)性。
[1] 宋雋婷.基于SSH框架模式的Web應(yīng)用研究[J].電腦編程技巧與維護(hù),2011,(6):63~64
[2] 石志國,薛為民,董潔.JSP應(yīng)用教程[M].北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2004
[3] 覃慶炎,張偉.Java開源項(xiàng)目開發(fā)詳解[M].北京:清華大學(xué)出版社,2008
[4] 馮潤民.基于SSH的高校學(xué)生管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009,35(6):280~282
[責(zé)任編校:張彩紅]
2015-10-16
本文系邯鄲市科學(xué)技術(shù)研究與發(fā)展計(jì)劃2012年度項(xiàng)目《基于SSH技術(shù)的中小企業(yè)生產(chǎn)管理系統(tǒng)開發(fā)》(項(xiàng)目編號:1221140097-7)研究成果。
魏全紅,女,河北曲周人,邯鄲職業(yè)技術(shù)學(xué)院副院長。
F406.14
A
1009-5462(2015)04-0049-03