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

?

Java Web應(yīng)用框架研究與應(yīng)用

2017-11-27 10:21楊國勛
科技傳播 2017年21期

楊國勛

摘 要 為提高Web應(yīng)用系統(tǒng)開發(fā)的效率和質(zhì)量,IT企業(yè)通常使用框架技術(shù)來進(jìn)行Web應(yīng)用的設(shè)計(jì)和開發(fā)。本文對(duì)目前通用的基于Java技術(shù)的SSH三大框架的技術(shù)和特點(diǎn)進(jìn)行了研究,并分析了在實(shí)際Java Web應(yīng)用設(shè)計(jì)開發(fā)中各框架的應(yīng)用范圍。

關(guān)鍵詞 Struts2;Hibernate;Spring;控制反轉(zhuǎn);面向切面編程

中圖分類號(hào) TP3 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 1674-6708(2017)198-0090-02

隨著互聯(lián)網(wǎng)的發(fā)展普及,市場對(duì)建立在互聯(lián)網(wǎng)上的Web應(yīng)用的需求也越來越多,企業(yè)內(nèi)部的信息化管理系統(tǒng)也逐漸從原來的C/S結(jié)構(gòu)的桌面軟件應(yīng)用升級(jí)到基于B/S結(jié)構(gòu)的Web應(yīng)用系統(tǒng),因此如何高效率和高質(zhì)量的開發(fā)Web應(yīng)用系統(tǒng),就成了各家IT企業(yè)需要迫切解決的問題。在Web應(yīng)用開發(fā)中,IT企業(yè)通常會(huì)使用框架技術(shù)來進(jìn)行開發(fā)。因?yàn)楹芏郬eb應(yīng)用的底層功能需求都是一致的,例如數(shù)據(jù)庫的訪問,http請(qǐng)求的處理和響應(yīng)的設(shè)計(jì)等,另外一方面Web應(yīng)用項(xiàng)目通常是由多個(gè)軟件工程師協(xié)作開發(fā)的,而框架提供了良好的設(shè)計(jì)模式和分層設(shè)計(jì),使得Web應(yīng)用的分層和分工更加合理和高效。正是因?yàn)槭褂每蚣茉O(shè)計(jì)的諸多優(yōu)點(diǎn),絕大部分公司都采用框架來進(jìn)行Web應(yīng)用程序的設(shè)計(jì)和開發(fā),其中一些大型的IT公司經(jīng)過多年的技術(shù)積累,研發(fā)了適合本公司業(yè)務(wù)需求的框架,而大部分公司則是采用了市場中流行的框架來進(jìn)行Web應(yīng)用的設(shè)計(jì)開發(fā)。其中基于Java技術(shù)的就有SSH框架,SSH框架其實(shí)是由3個(gè)框架組成,有位于表示層的Struts2框架,位于業(yè)務(wù)邏輯層的Spring框架和數(shù)據(jù)訪問層的Hibernate框架。

1 Struts2框架

Struts2是實(shí)現(xiàn)了簡潔MVC設(shè)計(jì)模式的Web應(yīng)用開發(fā)框架。Struts2定義了通用的控制器(Controller),使用Action對(duì)用戶請(qǐng)求做了封裝并調(diào)用對(duì)應(yīng)業(yè)務(wù)邏輯模型(Model)進(jìn)行處理,通過配置文件設(shè)置請(qǐng)求響應(yīng)的跳轉(zhuǎn)視圖(View),這樣的設(shè)計(jì)降低了系統(tǒng)各個(gè)模塊的耦合度,使得前期開發(fā)和后期維護(hù)都更加高效。使用Struts2進(jìn)行開發(fā)還有以下優(yōu)勢(shì)。

1)Struts2框架的大部分功能都是通過攔截器的方式實(shí)現(xiàn)的,攔截器是面向切面編程(AOP)的一種實(shí)現(xiàn)策略,通過攔截器的方式軟件工程師可以根據(jù)自己的需要很方便的對(duì)Struts2框架中提供的功能進(jìn)行取舍,組合,修改和自定義。

2)Struts2框架提供了方便的表單參數(shù)獲取方式,可以通過Action的屬性來獲取參數(shù),通過DomainModel獲取參數(shù)或通過ModelDriven獲取參數(shù)。

3)Struts2框架提供了豐富的頁面標(biāo)簽等簡化編碼的工具來替代JSTL。

4)Struts2框架提供了異常處理機(jī)制,使得軟件工程師處理異常更加簡單。

5)Struts2框架提供了頁面國際化的功能,使得Web應(yīng)用能夠很方便的實(shí)現(xiàn)頁面的國際化。

6)Struts2框架提供了輸入數(shù)據(jù)的校驗(yàn)機(jī)制,使得軟件工程師使用Struts2的頁面標(biāo)簽和簡單的xml文件配置就能實(shí)現(xiàn)很復(fù)雜的用戶輸入數(shù)據(jù)的校驗(yàn)。

2 Hibernate框架

有些在內(nèi)存中處理的數(shù)據(jù)最終是需要保存到數(shù)據(jù)庫中的,這個(gè)過程被稱為數(shù)據(jù)的持久化,在Java技術(shù)中是使用JDBC的技術(shù)來實(shí)現(xiàn),而使用JDBC的技術(shù)就需要在代碼中使用SQL語言這類的關(guān)系數(shù)據(jù)庫的操作語言,而Java是面向?qū)ο蟮恼Z言,因此在程序中就總是要處理關(guān)系數(shù)據(jù)到對(duì)象的相互轉(zhuǎn)換和映射,使得代碼編寫繁瑣,因此有些軟件工程師自己在JDBC 技術(shù)基礎(chǔ)上編寫了相應(yīng)的框架實(shí)現(xiàn)了關(guān)系數(shù)據(jù)到對(duì)象的相互轉(zhuǎn)換和映射,其中目前最流行的框架就是Hibernate。

Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了代碼封裝,可以自動(dòng)生成SQL語句,軟件工程師完全可以不用在代碼中寫一條SQL語句,就能夠?qū)﹃P(guān)系數(shù)據(jù)庫進(jìn)行操作,可以完全使用面向?qū)ο缶幊趟枷雭硖幚黻P(guān)系數(shù)據(jù)。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Web應(yīng)用中使用,也可以在窗體桌面程序中使用。Hibernate提供了延遲加載機(jī)制,只是在需要的時(shí)候才將數(shù)據(jù)庫中的數(shù)據(jù)取出來映射成對(duì)象,這樣就減少了服務(wù)器內(nèi)存的占用,提升了服務(wù)器的性能。Hibernate還提供了數(shù)據(jù)緩存機(jī)制,通過一級(jí)緩存和二級(jí)緩存將數(shù)據(jù)查詢數(shù)據(jù)存放到緩存區(qū),再次需要相關(guān)數(shù)據(jù)時(shí)可以先直接到緩存區(qū)取,提高了Web應(yīng)用的響應(yīng)速度。

3 Spring框架

Spring框架是輕量級(jí)的使用了控制反轉(zhuǎn)和面向切面編程技術(shù)的容器框架,主要是針對(duì)JavaBean的生命周期進(jìn)行管理的輕量級(jí)容器。

控制反轉(zhuǎn)是一種設(shè)計(jì)模式,通過此模式可以解決代碼間的耦合,它把耦合從代碼中移出去,放到統(tǒng)一的XML文件中,通過一個(gè)容器在需要的時(shí)候把這個(gè)依賴關(guān)系形成,即把需要的接口實(shí)現(xiàn)注入到需要它的類中。Spring實(shí)現(xiàn)了控制反轉(zhuǎn)模式,由Spring來管理對(duì)象的生命周期、依賴關(guān)系等,從而使得應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。其中一個(gè)特點(diǎn)就是通過文本的配置文件進(jìn)行應(yīng)用程序組件間相互關(guān)系的配置,而不用重新修改并編譯具體的代碼。

面向切面編程讓關(guān)注點(diǎn)代碼與業(yè)務(wù)代碼分離,關(guān)注點(diǎn)代碼就是指具有通用功能,會(huì)被反復(fù)調(diào)用的一段代碼,面向切面編程就是將這部分代碼抽取出來形成切面類,提供給不同的業(yè)務(wù)代碼進(jìn)行調(diào)用。面向切面編程的特點(diǎn)是可以動(dòng)態(tài)地添加和刪除在切面上的邏輯而不影響原來的執(zhí)行代碼。

正是由于Spring是基于控制反轉(zhuǎn)和面向切面的技術(shù),因此使用Spring框架可以很方便的對(duì)Java對(duì)象進(jìn)行管理,而不影響原有項(xiàng)目的關(guān)鍵代碼,可以快速高效的將多個(gè)框架整合在一起。

4 SSH框架整合

根據(jù)SSH這3個(gè)框架的不同特點(diǎn),在整合的時(shí)候,Struts2位于表示層負(fù)責(zé)Web應(yīng)用和用戶的交互和頁面邏輯的跳轉(zhuǎn),Hibernate位于數(shù)據(jù)訪問層負(fù)責(zé)數(shù)據(jù)庫的操作,Spring位于業(yè)務(wù)邏輯層負(fù)責(zé)管理業(yè)務(wù)邏輯處理對(duì)象,并可以根據(jù)需要管理Struts2和Hibernate中核心對(duì)象的生命周期。其整合方式如圖1所示。

這樣的分層方式使得軟件開發(fā)團(tuán)隊(duì)的分工更加明確,每位工程師都只需要專注自己擅長的領(lǐng)域,提高了開發(fā)效率。當(dāng)系統(tǒng)需要進(jìn)行功能變更和維護(hù)時(shí)也更加方便,而且因?yàn)镾pring具有控制反轉(zhuǎn)和面向切面編程的特性,在必要時(shí)也可以很方便的替換表示層和數(shù)據(jù)訪問層框架。

參考文獻(xiàn)

[1]李健.Java SSH框架在Java Web中的應(yīng)用[J].電腦與電信,2016(3):69-72.

[2]張宇.基于Spring的MVC框架設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36(4):59-62.endprint