亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-08-11 03:34:20范士領(lǐng)盛凱合肥職業(yè)技術(shù)學(xué)院
        數(shù)碼世界 2018年7期
        關(guān)鍵詞:代碼協(xié)作框架

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

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

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

        1 平臺(tái)的框架技術(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é)作平臺(tái)軟件綜合應(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模式開源框架, 相對(duì)于Strutsl來說,Struts2并不是簡單的升級(jí), 而是從WebWork升級(jí)而來的新版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是一種輕量級(jí)J2EE開源框架,提供了管理業(yè)務(wù)對(duì)象的一致方法并且鼓勵(lì)對(duì)接口編程而不是對(duì)類編程的良好習(xí)慣。它以控制反轉(zhuǎn)(inversion of control,IoC)或依賴注入(dependency injection,DI)原則和面向方面編程(aspect-oriented programming,AOP)思想為基礎(chǔ),提供管理業(yè)務(wù)對(duì)象服務(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ù),對(duì)JDBC進(jìn)行輕量級(jí)的對(duì)象封裝,讓普通的Java對(duì)象(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)

        在平臺(tái)中采用了如下的整合策略:

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

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

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

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

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

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

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

        3 在線項(xiàng)目協(xié)作平臺(tái)的實(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í)序圖

        頁面提交請(qǐng)求,該請(qǐng)求交由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請(qǐng)求,將通過struts2的偽Action過渡將請(qǐng)求轉(zhuǎn)發(fā)給Spring MVC處理。

        完成了web.xml配置后,首先設(shè)計(jì)Domain域?qū)ο竽P?,并確定它們的關(guān)聯(lián)關(guān)系。可以借助Hibernate提供的DDL工具,自動(dòng)地生成域模型對(duì)象及對(duì)應(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請(qǐng)求過渡給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過渡將請(qǐng)求轉(zhuǎn)由spring2處理。

        applicationContext.xml實(shí)現(xiàn)Spring2對(duì)所有的Action管理和具體請(qǐng)求處理,另外還可以配置連接數(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攔截的請(qǐng)求轉(zhuǎn)由某個(gè)具體的 Action 如 com.online.ui.action.ProjectAction 進(jìn)行業(yè)務(wù)邏輯的處理,在處理過程中注入屬性和對(duì)象。

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

        猜你喜歡
        代碼協(xié)作框架
        框架
        廣義框架的不相交性
        團(tuán)結(jié)協(xié)作成功易
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        協(xié)作
        讀者(2017年14期)2017-06-27 12:27:06
        WTO框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        協(xié)作
        讀寫算(下)(2016年9期)2016-02-27 08:46:31
        久久久久无码精品国产app| 日本女优禁断视频中文字幕| 少妇被按摩出高潮了一区二区 | 丰满少妇人妻无码专区| 中文字幕亚洲乱码熟女在线萌芽| 久久99久久99精品免观看不卡| 精品无码久久久久久久久粉色| 一本久久综合亚洲鲁鲁五月夫| 噜噜中文字幕一区二区 | 亚洲欧美日韩精品高清| 精品久久久亚洲中文字幕| 白浆高潮国产免费一区二区三区 | 国产做国产爱免费视频| 亚洲av无码资源在线观看| 精品人妻av区乱码| 亚洲免费一区二区三区四区| 国产农村熟妇videos| 国产尤物AV尤物在线看| 高清av一区二区三区在线| 成人自拍偷拍视频在线观看| 国产a在亚洲线播放| 免费观看的av毛片的网站| 国产欧美一区二区成人影院| 亚洲天堂色婷婷一区二区| 亚洲综合极品美女av| 国产熟人av一二三区| 国产精品深夜福利免费观看| 蜜臀人妻精品一区二区免费| 超碰97人人射妻| 亚洲久热无码av中文字幕| 亚洲人成18禁网站| 黄色潮片三级三级三级免费| 久久久中文久久久无码| 国产呦系列呦交| 精品国产性色av网站| 久久精品亚洲熟女九色| 亚洲中文字幕在线综合| 国产一极内射視颍一| 中文 国产 无码免费| 亚洲天码一区二区三区| 永久黄网站色视频免费看|