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

        ?

        基于Spring+SpringMVC+hibernate框架的Web系統(tǒng)設計與實現

        2018-12-18 10:16:32朱運喬
        電腦知識與技術 2018年26期

        朱運喬

        摘要:首先對Spring+SpringMVC+hibernate框架模型作了簡單介紹,對其結構組成和基本工作原理進行了簡要分析。然后以一個商品出庫系統(tǒng)模塊的為例,展示了如何使用Spring+SpringMVC+hibernate框架搭建層次清晰的程序結構。并給出了商品出庫模塊在該框架下的功能實現和關鍵代碼。

        關鍵詞:Spring;SpringMVC;hibernate;Web系統(tǒng);功能實現

        中圖分類號:TP311.52 文獻標識碼:A 文章編號:1009-3044(2018)26-0066-03

        1 概述

        當前,JavaWeb開發(fā)技術繁多,但為開發(fā)團隊選擇一款優(yōu)秀的框架非常重要,一個好的框架決定了開發(fā)團隊的軟件開發(fā)周期、開發(fā)成本、維護成本甚至于軟件的生命周期。在選擇一個可行的方案時,一般要從穩(wěn)定成熟性、可擴展性及靈活等多方面綜合考慮。本文將以一個商品出庫模塊為例,詳細介紹由Spring、SpringMVC、hibernate幾種技術構成的軟件架構的搭建技術要點和以此為平臺的功能模塊實現過程。

        2 Spring+SpringMVC+hibernate技術架構

        Spring+SpringMVC+hibernate不同于之前流行的Spring+struts2+hibernate(ssh2)技術架構,該架構是將后者最重要的前端控制部分struts2(mvc)替換成用SpringMVC,同時將Spring和hibernate多種開源技術有機結合在一起,從而構建出一個健壯可靠、高效成熟的JavaWeb應用程序技術架構。

        2.1 SpringMVC簡介

        SpringMVC是當前非常流行的一種MVC框架,而MVC是我們開發(fā)WEB應用程序的通用框架,MVC的核心思想是業(yè)務邏輯和業(yè)務數據呈現相分離,使程序分層、分工合作,既相互獨立,又協(xié)同合作。其中:

        M(Model):業(yè)務邏輯的描述和業(yè)務數據的信息表示。

        V(View):為用戶呈現數據的頁面。

        C(Controller):調用模型層(Model)的業(yè)務邏輯產生合適的數據模型,同時傳遞數據模型給視圖層(View)呈現給用戶。

        Spring MVC是一個設計優(yōu)良的MVC框架,是Spring下的一個開源項目,可以跟Spring無縫接合,自從Spring 2.5版本發(fā)布后,由于支持注解配置,易用性有了大幅度的提高,實現了對Struts 2的超越?,F在越來越多的開發(fā)團隊選擇了Spring MVC。

        2.2 Hibernater的作用

        Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執(zhí)行,使得Java程序員可以使用對象編程思維來操縱數據庫。

        2.3 Spring框架的作用

        Spring框架是系統(tǒng)的核心部分,系統(tǒng)各部分的整合由它來完成。Spring提供的Ioc容器是業(yè)務邏輯組件和DAO組件的工廠,它負責生成并管理這些實例。

        借助于Spring的依賴注入,各組件以松耦合的方式組合在一起,組件與組件之間的依賴正是通過Spring的依賴注入管理的。其Service組件和DAO對象都采用面向接口編程方式,從而降低了系統(tǒng)重構的成本,極好地提高了系統(tǒng)的可維護性、可擴充性。

        事務管理采用Spring的聲明式事務框架,通過聲明式事務,而只需要容器中加以配置,在業(yè)務邏輯層中加上相應的注解即可,使業(yè)務組件只專注于業(yè)務本身,從而簡化了開發(fā)。

        一個典型的使用了Spring+SpringMVC+hibernate架構的應用,其結構如下圖所示。

        由圖所示,SpringMVC實現整體結構及前端控制,Hibernate主要負責數據訪問,Spring負責將各大組件粘合在一起組成一個完整的軟件架構。

        3 系統(tǒng)實現

        下面以一個商品出庫模塊為例來展現Spring+SpringMVC+hibernates架構的具體設計與實現。

        3.1 功能描述

        商品出庫模塊首先由商品出庫界面(outwarehouse.jsp)提交出庫表單請求(/outwarehouse)到控制器,請求方法根據出庫表單數據調用業(yè)務邏輯層,由業(yè)務邏輯層返回的信息決定返回哪個視圖:如出庫失敗,返回error.jsp顯示出錯原因;如出庫成功,返回showResult.jsp頁面視圖,展示成功出庫的商品情況。通過showResult.jsp頁面可進一步向控制器提交請求(/history),從而獲取所有商品的出庫歷史記錄。

        3.2 數據庫設計

        數據庫涉及到兩個表:商品表(ShopInfo),出庫歷史表(Storage)。

        3.3 關鍵代碼

        關鍵代碼涉及四個包:

        bean包,主要包含有兩個ORM對象(ShopInfo.java、Storage.java)。

        dao包,主要包含兩個DAO類(ShopInfoDAO.java、StorageDAO.java)。

        service.impl包及子包,主要包含業(yè)務邏輯接口實現類(ShopInfoService.java、StorageService.java)。

        controller包,主要包含控制器(OutwareHouseController.java)。

        代碼實現過程中用了注解方式創(chuàng)建和注入javabean,下面主要展示主要代碼及相關注解。

        1) ORM對象ShopInfo.java代碼及注解如下:

        @Entity //實體注解說明

        @Table(name="ShopInfo") //映射表

        public class ShopInfo implements java.io.Serializable {

        @Id //標識列

        @GeneratedValue(strategy=GenerationType.IDENTITY) //標識值自動生成方式

        private Integer id;

        /*一對多關系注解*/

        @OneToMany(cascade={CascadeType.ALL},mappedBy="shopInfo",fetch=FetchType.LAZY)

        private Set storages = new HashSet(0);

        /*以下其它屬性定義*/

        }

        2) DAO類ShopInfoDAO.java關鍵代碼及注解如下:

        @Repository //加載DAO類到spring容器注解

        public class ShopInfoDAO {

        @Autowired //自動裝配sesseionFactory

        @Qualifier("sessionFactory")

        privateSessionFactorysessionFactory;

        /*以下CRUD方法定義*/

        }

        3) Service接口實現類(ShopInfoService.java)關鍵代碼及注解:

        @Service //加載Service類到spring容器的注解

        public class ShopInfoService implements IShopInfoService {

        @Autowired //spring容器自動裝配shopInfoDAO

        privateShopInfoDAOshopInfoDAO;

        @Override

        @Transactional //在業(yè)務方法實現加上事務管理注解

        /*以下為業(yè)務方法定義,每個需要事務管理方法之前加@Transactional注解*/

        }

        4) 控制器類(OutWareHouseController.java)關鍵代碼及注解如下:

        @Controller //加載Controller類到spring容器的注解

        public class OutWareHouseController {

        @Autowired //spring容器自動裝配shopInfoService

        privateIShopInfoServiceshopInfoService;

        @Autowired //spring容器自動裝配storageService

        privateIStorageServicestorageService;

        @RequestMapping(value="/outwarehouse") //出庫請求注解

        public String outwarehouse(String shopId,intstorageQuantity,Model model){…}

        @RequestMapping(value="/history") //顯示歷史記錄請求注解

        public String history(Model model){…}

        3.4 配置說明

        配置正解如否至關重要,整個系統(tǒng)通過相關配置將各組件有機組織在一起。

        1) web.xml主要配置

        <!—加載spring容器—>

        <!—配置springmvc前端控制器—>

        <!— hibernate延遲(LAZY)加載問題的處理,因為在關系映射中用到了延遲加載 —>

        openSessionInViewFilter

        org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

        openSessionInViewFilter

        /*

        2) spring容器配置文件applicationContext.xml

        <!— spring可以自動去掃描base-pack下面的包或者子包下面的java文件,

        如果掃描到有Spring的相關注解的類,則把這些類注冊為Spring的bean —>

        <!—啟動事務注解的(@Transactional) —>

        bean.ShopInfo

        bean.Storage

        3) SpringMVC配置文件springmvc-config.xml

        <!— spring可以自動去掃描controller包或者子包下面有的@Controller注解的類 —>

        <!—啟動MVC相關注解 —>

        <!—視圖解析器 —>

        4 結束語

        SpringMVC為JAVAWeb應用提供優(yōu)了性能優(yōu)異的MVC框架,可擴展性強;Hibernate的ORM對JDBC進行了精美封裝,極大地簡化了數據持久化操作,提高了編碼效率,加速了項目進度;Spring的IoC和aop技術,將各組件以松耦合的方式組合在了一起。三個子框架各司其職,完美結合。本文以一個商品出庫模塊為例,詳細地介紹了Spring+SpringMVC+hibernate架構搭建的技術要點和主要實現過程,雖然是一個最小原型系統(tǒng),但是該框架擴展性強,易于維護,結合實際的功能需求,分別在Controller層,Service層,持久層等各層面上擴充添加相應的組件,即可實現一個完整系統(tǒng)。

        參考文獻:

        [1] 深入理解Spring MVC 思想[EB/OL]. [2014-07-31]. https://www.cnblogs.com/baiduligang/p/4247164.html.

        [2] SpringMVC[EB/OL]. [2018-05-29]. https://blog.csdn.net/luciferlongxu/article/details/80460580.

        [3] 何信,杜江,龐海艷.基于SSH2框架的Web系統(tǒng)的設計與實現[J]. 石家莊:統(tǒng)計與管理,2015(1):49-53.

        [4] 瘋狂軟件.Spring MVC+MYBatis企業(yè)應用實戰(zhàn)[M]. 北京:電子工業(yè)出版社,2017.

        [通聯(lián)編輯:王力]

        老熟女熟妇嗷嗷叫91| 青青草小视频在线播放| 国产精品亚洲精品日韩已方| 国产成人午夜无码电影在线观看| 黑人玩弄漂亮少妇高潮大叫| 欧美久久久久中文字幕| 久久中文字幕av第二页| 国产女优一区在线观看| 免费人成网站在线观看| 国产日产韩国av在线| 欧美性xxxx极品高清| 亚洲免费观看在线视频| 国产精品原创永久在线观看| 久久精品国产亚洲av豆腐| 午夜性刺激免费看视频 | 久久久久亚洲av无码专区体验| 国内精品国产三级国产av另类| 国产免费一区二区三区三| 肥老熟女性强欲五十路| 最近免费mv在线观看动漫| 国产高清无码在线| 黄色国产一区在线观看| 我要看免费久久99片黄色| 青青草国产精品一区二区| 久久精品麻豆日日躁夜夜躁| 91av视频在线| 富婆叫鸭一区二区三区| 文字幕精品一区二区三区老狼| 国产肉体xxxx裸体784大胆| 国产成人无码区免费网站| 国产精品麻豆A在线播放| 国产精品亚洲一二三区| 久久婷婷五月国产色综合| 男女野外做爰电影免费| 国产高清天干天天视频| 亚洲视频专区一区二区三区 | 日本人妻系列一区二区| 91九色老熟女免费资源| 国产97在线 | 免费| 久久尤物av天堂日日综合| av国产自拍在线观看|