999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SSH架構(gòu)的在線項(xiàng)目協(xié)作平臺設(shè)計(jì)與實(shí)現(xiàn)

2018-08-11 03:34:20范士領(lǐng)盛凱合肥職業(yè)技術(shù)學(xué)院
數(shù)碼世界 2018年7期
關(guān)鍵詞:數(shù)據(jù)庫設(shè)計(jì)

范士領(lǐng) 盛凱 合肥職業(yè)技術(shù)學(xué)院

引言:隨著行業(yè)的完善和細(xì)分,各行業(yè)(尤其是軟件行業(yè))出現(xiàn)了越來越多的中小型公司、兼職團(tuán)隊(duì)和自由職業(yè)者,這些公司或團(tuán)隊(duì)的組成及合作方式非常動(dòng)態(tài)、變化極大、靈活性非常高,他們通常無法在一起面對面工作和溝通,甚至工作的時(shí)間段也不一致;加上資金有限,也沒有能力購買一整套協(xié)作和溝通的軟件。目前市場上存在的項(xiàng)目管理軟件,如微軟的project,存在著很多的缺陷:費(fèi)用相對較高,復(fù)雜,分享比較麻煩,無法集成其他方面的功能,比如在線方面的功能。軟件項(xiàng)目管理工作面臨著極大的挑戰(zhàn),迫切需要一個(gè)高效,方便的資源共享,動(dòng)態(tài)監(jiān)控,指導(dǎo)各軟件項(xiàng)目開發(fā)管理的信息化工作平臺的支持。

在線項(xiàng)目協(xié)作平臺的目標(biāo)是搭建一個(gè)基于Web的在線項(xiàng)目管理協(xié)作平臺,方便項(xiàng)目負(fù)責(zé)人對于項(xiàng)目的規(guī)劃、管理、任務(wù)分配、項(xiàng)目進(jìn)度的把握,成員之間協(xié)作、溝通、分享資料和互相通知,以適應(yīng)項(xiàng)目和團(tuán)隊(duì)的快速變化和遠(yuǎn)程協(xié)作。

1 平臺的框架技術(shù)

目前,在軟件開發(fā)技術(shù)方面,提高應(yīng)用系統(tǒng)開發(fā)效率的方法較多,其中比較成熟的技術(shù)有基于MVC模式的Struts2技術(shù)、Spring2技術(shù)和Hibernate3技術(shù),而將這三種技術(shù)有機(jī)結(jié)合起來構(gòu)建SSH框架,不但可以有效提高系統(tǒng)開發(fā)效率,而且在系統(tǒng)安全性、穩(wěn)定性和健壯性、擴(kuò)展性上都有良好的改進(jìn)。在線項(xiàng)目協(xié)作平臺軟件綜合應(yīng)用了Struts2、Spring2和Hiberhate3這三種最新的軟件框架技術(shù),使其具有良好的架構(gòu)和穩(wěn)定的性能。

1.1 Struts2框架

Struts2是現(xiàn)今WEB開發(fā)技術(shù)中運(yùn)用最廣泛的實(shí)現(xiàn)了MVC模式開源框架, 相對于Strutsl來說,Struts2并不是簡單的升級, 而是從WebWork升級而來的新版Struts。在Strutsl的基礎(chǔ)上作了大量的改進(jìn),并融入了Struts1和WebWork2的優(yōu)點(diǎn),Struts2使用了webwork設(shè)計(jì)核心,而不是Struts1設(shè)計(jì)核心。Struts2將一個(gè)Web系統(tǒng)的程序分為模型、視圖和控制器三個(gè)部分。模型由JavaBean、EJB等組件構(gòu)成;視圖由JSP、HTML、Struts2標(biāo)簽,JSTL標(biāo)簽組成;控制器由Action來實(shí)現(xiàn)。

1.2 Spring2框架

Spring2是一種輕量級J2EE開源框架,提供了管理業(yè)務(wù)對象的一致方法并且鼓勵(lì)對接口編程而不是對類編程的良好習(xí)慣。它以控制反轉(zhuǎn)(inversion of control,IoC)或依賴注入(dependency injection,DI)原則和面向方面編程(aspect-oriented programming,AOP)思想為基礎(chǔ),提供管理業(yè)務(wù)對象服務(wù)。IoC/DI是Spring的核心,即組件的關(guān)系由容器來控制,而非傳統(tǒng)的程序代碼,從而極大改善了代碼的可重用性。核心容器的主要組件是BeanFactory,它是工廠模式的實(shí)現(xiàn)。BeanFactory使用IoC模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。

1.3 Hibernate3技術(shù)

Hibernate框架使用O/R映射技術(shù),對JDBC進(jìn)行輕量級的對象封裝,讓普通的Java對象(Plain Old Java Objects,POJO)變成持久化類,管理Java類到數(shù)據(jù)庫表的映射,并提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法。Hibernate3,在以前的版本上,做了三個(gè)方面變化:API的變化,元數(shù)據(jù),HQL查詢語句,產(chǎn)品的性能,兼容性,穩(wěn)定性都得到了提高。

1.4 集成策略與總體軟件架構(gòu)

在平臺中采用了如下的整合策略:

(1)Struts2中的Action和數(shù)據(jù)邏輯層的數(shù)據(jù)操作bean交由Spring2容器來管理,在Struts2中采用偽Action來代替真實(shí)的Action,真實(shí)的Action位于Spring2容器中。

(2)數(shù)據(jù)操作bean僅針對POJO對象操作,而POJO對象與數(shù)據(jù)庫中數(shù)據(jù)的映射、數(shù)據(jù)的關(guān)系邏輯及數(shù)據(jù)的持久化工作由Hibernate3來實(shí)現(xiàn)。

(3)數(shù)據(jù)操作bean中的POJO對象由Spring2注入,POJO的屬性值則由Hibernate來生成。整合后的框架結(jié)構(gòu)如圖 1:

圖 1 基于Struts2+Spring2+Hibernate3平臺的總體軟件架構(gòu)

2 在線項(xiàng)目協(xié)作平臺模塊結(jié)構(gòu)

在線項(xiàng)目管理系統(tǒng)是部署于WEB服務(wù)器上的基于B/S架構(gòu)的應(yīng)用系統(tǒng)。系統(tǒng)用戶可以使用設(shè)定的帳號登錄系統(tǒng)。系統(tǒng)結(jié)構(gòu)圖如圖2:

圖 2在線項(xiàng)目協(xié)作平臺模塊結(jié)構(gòu)圖

3 在線項(xiàng)目協(xié)作平臺的實(shí)現(xiàn)

該項(xiàng)目的開發(fā)環(huán)境為Windows XP,數(shù)據(jù)庫使用SQL Servser 2005,Web Server使用 Tomcat v6.0 Server,開發(fā)語言為 java,開發(fā)工具為eclipse。在建立項(xiàng)目后,需要導(dǎo)入struts2,spring2和hibernate所需的.jar包。以項(xiàng)目管理模塊添加項(xiàng)目為例,介紹基于SSH項(xiàng)目的具體實(shí)現(xiàn)。

3.1 增加項(xiàng)目的時(shí)序圖

頁面提交請求,該請求交由Action處理,Action調(diào)用Service進(jìn)行業(yè)務(wù)邏輯處理,處理后調(diào)用Dao層服務(wù)實(shí)現(xiàn)數(shù)據(jù)的持久化。如圖3:

圖 3 增加項(xiàng)目的時(shí)序圖

3.2.xml文件配置和類的實(shí)現(xiàn)

SSH整合后的框架所用的配置文件主要有web.xml,struts.xml,applica-tionContext.xml,若干.hbm.xml文件如項(xiàng)目所用的Projec-t.hbm.xml等,類的設(shè)計(jì)包括Domain域模型層,業(yè)務(wù)邏輯層(Action層和Service層),持久層的設(shè)計(jì)。

首先在web.xml中加載pring2框架,在web中編寫如下內(nèi)容:<listener><listener-class>org.springframework.web.context.ContextLoaderLis-tener</listener-class></listener>

這樣在Web應(yīng)用啟動(dòng)時(shí)將加載Spring2框架,遇到html或者jsp請求,將通過struts2的偽Action過渡將請求轉(zhuǎn)發(fā)給Spring MVC處理。

完成了web.xml配置后,首先設(shè)計(jì)Domain域?qū)ο竽P停⒋_定它們的關(guān)聯(lián)關(guān)系。可以借助Hibernate提供的DDL工具,自動(dòng)地生成域模型對象及對應(yīng)的.hbm.xml文件。以Project為例,生成的域?qū)ο笕缦拢?/p>

public class Project{

private Integer id; private String proName;

public String getProName() { return proName; }

public void setProName(String proName) { this.proName = proName;}

…… }

在生成域?qū)ο笸瑫r(shí),還生成了Project.hbm.xml,該文件也可以手動(dòng)配置。.hbm.xml文件的主要作用是實(shí)現(xiàn)實(shí)體類(域?qū)ο螅┡c數(shù)據(jù)庫表字段之間的相互映射。

域模型層設(shè)計(jì)好后,可以進(jìn)行業(yè)務(wù)邏輯層的設(shè)計(jì),該層主要設(shè)計(jì)Action層代碼和Service層代碼,所使用的配置文件有struts.xml,applicationCont-ext.xml。Action 層和 Service層代碼如下:

// Action層代碼

public class ProjectAction{

public String saveNewProject() {

if(this.projectService.saveNewProject(project)==true)

return Action.SUCCESS; else return Action.ERROR; }

…… }

// Service層代碼

public class ProjectService {

public boolean saveNewProject(Project project)

{ return (this.projectDao.saveNewProject(project)); }

…… }

struts.xml主要是將具體Action請求過渡給spring2處理,配置如下:

<struts><package name="onlineproject"extends="struts-default">

<action name="SaveNewProject"class="SaveNewProjectTemp"

method="saveNewProject">

<result name="success">/SaveSuccess.jsp</result>

<result name="error">/SaveError.jsp</result>

</action></package></struts>

由上面的配置,將通過class="SaveNewProjectTemp"偽Action過渡將請求轉(zhuǎn)由spring2處理。

applicationContext.xml實(shí)現(xiàn)Spring2對所有的Action管理和具體請求處理,另外還可以配置連接數(shù)據(jù)庫和連接池的相關(guān)參數(shù)。配置如下:

<bean id="SaveNewProjectTemp"

class="com.online.ui.action.ProjectAction"scope="prototype">

<property name="projectService" ref="projectService"/>

</bean>

<bean id="projectService" class="com.online.service.ProjectService">

<property name="projectDao"ref="projectDao" />

</bean>

<bean id="projectDao" class="com.online.dao.impl.ProjectHibernateDao">

<property name="sessionFactory"ref="mySessionFactory" />

</bean>

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property name="driverClassName" value="com.mysql.jdbc.Driver" />

<property name="url" value="jdbc:mysql://localhost/onlineproject" />

<property name="username" value="root" />

<property name="password" value="1" />

</bean>

……

由上面的配置,spring2通過bean id="SaveNewProjectTemp"實(shí)現(xiàn)struts2到spring2過渡,將struts2攔截的請求轉(zhuǎn)由某個(gè)具體的 Action 如 com.online.ui.action.ProjectAction 進(jìn)行業(yè)務(wù)邏輯的處理,在處理過程中注入屬性和對象。

最后進(jìn)行持久層設(shè)計(jì),DAO模式是持久層的標(biāo)準(zhǔn)模式。項(xiàng)目使用Dao層定義統(tǒng)一的接口,由Dao接口層實(shí)現(xiàn)具體的接口。以下是持久層代碼:

// Dao層代碼

public interface ProjectDao

{ public boolean saveNewProject(Project project); ……}

// Dao接口層代碼

public class ProjectHibernateDao extends HibernateDaoSupport implements ProjectDao {

public boolean saveNewProject(Project project){

try {this.getHibernateTemplate().save(project);return true;}

catch (Exception e) { e.printStackTrace();}return false;}

}

Spring2對Hibernate3進(jìn)行了很好的集成,HibernateTemplate提供了一系列的方法來實(shí)現(xiàn)數(shù)據(jù)庫表的增刪改查操作。通過在ProjectHibernateDao中注入HibernateTemplate,實(shí)現(xiàn)保存功能。

3.3 頁面設(shè)計(jì)

頁面設(shè)計(jì)使用jsp+struts2標(biāo)簽,增加項(xiàng)目所用的頁面有projectForm.jsp,SaveSuccess.jsp,SaveError.jsp。需要在頁面的開始引入<%@taglib uri="/struts-tags" prefix="s"%>。使用struts2標(biāo)簽,在表單提交的時(shí)候,可以自動(dòng)將各標(biāo)簽的屬性值映射為類的屬性值。

4 結(jié)束語

在線項(xiàng)目協(xié)作平臺,使用了SSH技術(shù)架構(gòu),使系統(tǒng)的開發(fā)效率、擴(kuò)展性、重用性、易維護(hù)性得到提高。該軟件平臺,有效的規(guī)范了軟件項(xiàng)目管理的流程,加強(qiáng)了員工之間的溝通與協(xié)作,為軟件企業(yè)提供了一個(gè)高效、方便的資源共享、動(dòng)態(tài)監(jiān)控、指導(dǎo)各軟件項(xiàng)目開發(fā)管理的信息化工作平臺。

猜你喜歡
數(shù)據(jù)庫設(shè)計(jì)
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設(shè)計(jì)萌到家
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
數(shù)據(jù)庫
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
主站蜘蛛池模板: 一级毛片网| 久久国产精品嫖妓| 久久人体视频| 在线观看国产精品第一区免费| 91在线国内在线播放老师| 国产又黄又硬又粗| 欧洲一区二区三区无码| 国产区成人精品视频| 日本午夜影院| 成AV人片一区二区三区久久| 91免费片| 四虎永久免费在线| 无码aaa视频| 日韩午夜片| 精品超清无码视频在线观看| 毛片卡一卡二| 国产乱视频网站| 免费人成在线观看成人片| 91在线播放免费不卡无毒| 欧美日韩一区二区在线免费观看| yjizz视频最新网站在线| 欧美精品1区| 国产91精品最新在线播放| 久久精品人人做人人综合试看| 超碰aⅴ人人做人人爽欧美| 日韩精品亚洲一区中文字幕| 无码人中文字幕| 久久精品国产精品青草app| a毛片在线| 四虎精品国产永久在线观看| 欧美视频二区| 波多野结衣一区二区三区四区视频| 亚洲国产91人成在线| 欧美亚洲激情| 日本不卡在线视频| 精品国产91爱| 国产中文在线亚洲精品官网| 色婷婷视频在线| 日韩专区欧美| 99成人在线观看| 午夜限制老子影院888| 亚洲日韩第九十九页| 亚洲天堂久久| 91在线播放国产| 91精品专区| 不卡午夜视频| 在线精品亚洲国产| 日韩第九页| 伊人AV天堂| 92午夜福利影院一区二区三区| 欧美人在线一区二区三区| 久久国产高清视频| 先锋资源久久| 久久综合婷婷| 色综合狠狠操| 97在线公开视频| 欧美成人精品一级在线观看| 少妇精品网站| 国产精品香蕉在线观看不卡| 午夜国产大片免费观看| 欧美一区二区三区欧美日韩亚洲| 国产精品大尺度尺度视频| 欧美日韩国产系列在线观看| 国产精品999在线| 欧美一区二区三区不卡免费| 在线播放国产99re| 久久婷婷人人澡人人爱91| 欧美精品1区2区| 91在线一9|永久视频在线| 亚洲国产成人精品一二区| 国产一区二区色淫影院| 国产成人一区| 久久亚洲国产最新网站| 色哟哟国产精品一区二区| 色网在线视频| 亚洲午夜片| 91成人免费观看| 日本亚洲国产一区二区三区| 久久人体视频| 亚洲另类色| 国产毛片片精品天天看视频| 99久久国产综合精品女同|