李 劍
LI Jian
(南京化工職業(yè)技術學院,南京 210048)
隨著保險業(yè)管理要求和風險防范意識的增強,通過大量的數(shù)據(jù)統(tǒng)計,可以分析經營趨勢,為保險行業(yè)決策者提供參考。因此,如何在規(guī)定的時間段收集保險子公司經營數(shù)據(jù)并進行統(tǒng)計分析就成了保險行業(yè)需要解決的問題。然而,目前保險行業(yè)總部依靠各地下屬部門層層上報數(shù)據(jù),該方法已經不能適應保險行業(yè)對數(shù)據(jù)及時性的需求。因此,利用先進的JSF-Guice-iBATIS集成框架技術研發(fā)保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng),具有較強的現(xiàn)實意義。
該保險業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)需求:
1)設定周一至周五的夜間23:30,觸發(fā)數(shù)據(jù)采集程序;
2)該系統(tǒng)數(shù)據(jù)采集功能將各子公司的經營數(shù)據(jù)存儲到總部數(shù)據(jù)庫;
3)總部人員登錄系統(tǒng)后,可以瀏覽總部數(shù)據(jù)庫的數(shù)據(jù),通過應用系統(tǒng)提供的圖形統(tǒng)計方法,進行決策分析。
該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)主要模塊功能如下:
1)數(shù)據(jù)采集模塊:系統(tǒng)每個工作日定時從各地分公司數(shù)據(jù)庫采集數(shù)據(jù)到總部數(shù)據(jù)庫,里面包括定時觸發(fā)程序。
2)統(tǒng)計分析模塊:包括瀏覽數(shù)據(jù)和分析決策兩項功能。其中,瀏覽數(shù)據(jù)就是指總部人員瀏覽各地分公司經營數(shù)據(jù);分析決策就是指總部人員按時間縱向比較、按不同分公司橫向比較,可以對險種銷售數(shù)據(jù)進行分類,按照不同子公司、按照不同時段進行統(tǒng)計,生成相應折線、柱狀對比圖形。
2.1 系統(tǒng)邏輯結構設計
該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)采用JSF- GuiceiBATIS集成框架,如圖1所示。其中,JSF是一個基于Java Web的用戶界面標準,同時又符合MVC模式的Web應用程序框架,它主要作用是將視圖層與模型層分開,解開其中的耦合性;Guice是一個優(yōu)于Spring的實現(xiàn)控制反轉(IoC)及面向切面編程(AOP)的輕量級框架;iBATIS是以SQL為中心的數(shù)據(jù)持久層框架。三者共同構成JSF- GuiceiBATIS集成框架。
在圖1中,控制層用JSF框架構建,負責系統(tǒng)用戶界面和控制器,其中C代表控制器FaceServlet,V代表視圖JSP,負責顯示功能,M代表Backing Bean,JSP頁面的數(shù)據(jù)經簡單處理后,被傳輸給業(yè)務層;業(yè)務層由Guice框架構建,根據(jù)業(yè)務邏輯來決定下一步操作;持久層由iBATIS框架構建,負責與數(shù)據(jù)庫層進行交互。
JSF- Guice- iBATIS集成框架包含對持久性、事務管理、安全性、日志記錄等問題的現(xiàn)成解決方案,同時本身又具有很強的普適性和實用性,從而使開發(fā)者在應用該框架技術時,能夠大大提高該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)開發(fā)的效率。
圖1 JSF-Guice-iBATIS集成框架示意圖
圖1所示的系統(tǒng)邏輯結構能夠更好地遵循Sun J2EE平臺中兩個主要的設計原則:“多層架構,松耦合”。由于采用分層的設計方式,各個模塊功能相互獨立封裝,層與層之間的關聯(lián)少,保持松耦合連接,系統(tǒng)的穩(wěn)定性高,便于擴展和維護。另外,項目中的每一層所采用的技術都是可替換的,例如JSF可以被Struts或者Tapestry等其它的表示層實現(xiàn)框架替換掉,Guice 可以換成Spring框架,iBATIS可以替換成JDO或Hibernate框架。在每個層中都不同程度地應用了J2EE平臺中常用的設計模式,并且使用基于POJO的輕量級架構實現(xiàn)系統(tǒng)中的各個核心的功能組件,從而使得系統(tǒng)易于測試、移植、縮短開發(fā)周期。
2.2 系統(tǒng)接口設計
2.2.1 DAO層設計
當開發(fā)該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)時,利用一個通用API層將實體操作的細節(jié)封裝起來。DAO(Data Access Objects)允許程序員通過一個簡單接口的來操作數(shù)據(jù),從而屏蔽了具體實現(xiàn)細節(jié)。利用DAO,程序員可以動態(tài)配置應用程序來訪問不同的實體存儲機制。該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)包含復雜的應用,需要用到子公司的數(shù)據(jù)庫,DAO讓程序員建立一個一致的API,讓系統(tǒng)的其它部分來調用。圖2為本地持久層接口SupdataDao與接口實現(xiàn)類SupdataDaoImpl的類圖。
在圖2中,F(xiàn)iliale類構成了子公司數(shù)據(jù)表實體模型,而SupdataDao接口調用這個Filiale模型來定義具體的DAO方法,SupdataDaoImpl類則是SupdataDao接口的實現(xiàn)類。SupdataDao接口則調用了Filiale類模型來定義接口的一些方法。
圖2 Filiale模型DAO層類結構圖
2.2.2 業(yè)務邏輯層設計
該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)業(yè)務邏輯層提供統(tǒng)一的Facade接口,前臺Web層僅僅調用這個Facade接口,這樣,Web層與后臺耦合非常松散,即使替換整個Web層也較容易。
圖3為該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)業(yè)務邏輯結構示意圖。
圖3 該系統(tǒng)業(yè)務邏輯結構示意圖
在圖3中,業(yè)務層處在DAO層之外,除負責該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)業(yè)務處理外,還通過DAO層管理業(yè)務邏輯到持久層實現(xiàn)、提供與其它層交互接口、管理業(yè)務對象之間依賴關系及管理事務。
圖4為子公司Filiale模型Service層類關系圖。在圖4中,F(xiàn)ilialeServiceImpl類實現(xiàn)了接口FilialeService所定義的方法,并且調用了FilialeDao接口,而FilialeService接口則引入了Filiale對象模型。這里調用的是FilialeDao接口,不是調用的FilialeDao接口實現(xiàn)類。調用FilialeDao接口而不關注具體的實現(xiàn)類FilialeServiceImpl的好處,就是研發(fā)人員修改某一實現(xiàn)類的時候不需修改調用層的代碼,降低了該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)的開發(fā)復雜性。
圖4 Filiale模型Service層類關系圖
在系統(tǒng)需求分析與總體設計的基礎上,完成系統(tǒng)詳細設計與實現(xiàn),這部分內容包括公共類設計、系統(tǒng)持久層實現(xiàn)、數(shù)據(jù)自動采集功能實現(xiàn)、統(tǒng)計分析功能實現(xiàn)以及系統(tǒng)關鍵問題解決方案,限于篇幅,下文著重闡述后三部分。
3.1 數(shù)據(jù)自動采集功能實現(xiàn)
3.1.1 控制器組件實現(xiàn)
該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)數(shù)據(jù)采集模塊沒有視圖層,控制器FacesServlet也無需另外開發(fā),但需要在web.xml文件和faces-config.xml兩個配置文件中進行定義。
3.1.2 Service層組件實現(xiàn)
在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)開發(fā)過程中,業(yè)務層,根據(jù)圖3該系統(tǒng)業(yè)務邏輯結構示意圖可以看出,該層最容易出現(xiàn)與其它層緊耦合現(xiàn)象。例如,該層與持久層的交互的處理、事務的管理。在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)中,利用Guice作為業(yè)務層來解決這類問題。其中包括業(yè)務層接口FilialeService、業(yè)務層接口實現(xiàn)類FilialeServiceImpl。
業(yè)務層接口FilialeService包括以下方法聲明:
1)獲取持久層插入數(shù)據(jù)方法insertData(Filiale Filiale);
2)獲取持久層遍歷xuzhoudata、zhenjiangdata等各保險分公司數(shù)據(jù)庫的方法selectXuZhouData()、selectZhenJiangData();
業(yè)務層接口實現(xiàn)類FilialeServiceImpl類實現(xiàn)了接口FilialeService所定義的方法,并且調用了FilialeDao接口,而FilialeService接口則引入了Filiale對象模型。
關于接口類FilialeService與其實現(xiàn)類FilialeServiceImpl之間的綁定在“4.3.4 業(yè)務模塊綁定問題”中闡述。
3.1.3 DAO層組件實現(xiàn)
SupDataDao接口類接受業(yè)務層接口實現(xiàn)類FilialeServiceImpl的調用,進行持久化操作。具體包括以下方法:
1)向保險總公司數(shù)據(jù)庫插入信息insert
Data();
2)遍歷xuzhoudata、zhenjiangdata、…、taizhoudata等各保險分公司數(shù)據(jù)庫的方法:selectXuZhouData()、selectZhenJiangData()、
…、selectTaiZhouData();
SupDataDaoImpl繼承SqlMapClientDaoSupp
ort,是接口類SupDataDao的實現(xiàn)類,使用Ibatis進行持久化操作。在Filiale模型DAO層類結構中,F(xiàn)iliale類構成了實體模型,而FilialeDao接口調用這個Filiale模型來定義具體的DAO方法,F(xiàn)ilialeDaoImpl類則是FilialeDao接口的實現(xiàn)類。
關于接口類FilialeDao與其實現(xiàn)類FilialeDaoImpl之間的綁定在“4.5.4 業(yè)務模塊綁定問題”中闡述。
3.2 統(tǒng)計分析功能實現(xiàn)
保險公司總部人員每天一上班,就可以登錄系統(tǒng),查看每一個子公司的數(shù)據(jù)險種銷售經營額,并可進行按照日、月、年對各個子公司進行分析,統(tǒng)計分析圖形顯示借助插件JFreeChart完成。
3.2.1 各分支機構數(shù)據(jù)及統(tǒng)計結果展示
各分支機構數(shù)據(jù)及統(tǒng)計結果展示手段包括各分公司保險日經營額匯總顯示以及任意時間段經營額統(tǒng)計。
3.2.2 各分支機構數(shù)據(jù)圖形化比較
在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)中,對于圖的表示方法,柱狀圖表示業(yè)績,其中的每一個柱表示實際的業(yè)績,用數(shù)值表示;線狀圖用來表達趨勢,通常按時序排列其中的點,每個點對應的值也是實際業(yè)績,用數(shù)值表示。下面利用JFreeChart生成統(tǒng)計結果圖表。
前面從數(shù)據(jù)庫中取出了連續(xù)一段時間每天的經營額,并保存在MNPeriodsale對象中。MNPeriodsale是由JFreeChart提供的輔助類,用來生成統(tǒng)計報表。JFreeChart是開放源代碼Java項目,它主要用來生成各種各樣的圖形。
1)使用ChartFactory來創(chuàng)建時間序列的折線圖標對象
日經營額統(tǒng)計調用的dayTurnover方法。該方法首先獲得要統(tǒng)計日經營總額,調用TurnoverHandle的getDayTurnover方法從數(shù)據(jù)庫中獲取數(shù)據(jù)集,并將數(shù)據(jù)集保存在request對象中。處理完畢后,流程轉向頁面day.jsp。視圖頁面首先從request對象中取出數(shù)據(jù)集,然后調用ChartHandle的generateZizagChart方法來生成圖形,最后將圖形展示在界面上。
2)使用ChartFactory來創(chuàng)建時間序列的柱狀圖標對象
通過統(tǒng)計最近幾個月每月的經營額,可以從較大的時間段上反映經營額變化情況。對于這些數(shù)據(jù)的比較與分析,保險公司決策層可以采取更有效的措施刺激保險業(yè)績的增長。
getMonthTurnover方法用于獲取當月在內,前幾個月的保險營銷額,并保存到數(shù)據(jù)集中返回,供JfreeChart調用。其中參數(shù)count為要統(tǒng)計多少月的數(shù)據(jù),結果集中包含前count月每月的經營總額。
用柱狀圖來描述每月的保險總額,主要實現(xiàn)過程是使用ChartFactory創(chuàng)建柱狀JfreeChart。
3.3 關鍵問題解決方案
3.3.1 讀取多數(shù)據(jù)源問題
該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)iBATIS配置文件中分公司數(shù)據(jù)庫配置文件分別為farData1.xml、farData2.xml、分公司數(shù)據(jù)庫映射文件distanceData.xml、字段配置文件column.properties、分公司數(shù)據(jù)表查詢條件配置文件farTable.xml。
在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)中,讀取分公司的數(shù)據(jù)源的步驟如下:
1)設定查詢條件,本應用中的查詢條件設定為:xuzhouid=1與zhenjiangid=2,……
2)利用ParameterColmn類,讀取字段配置文件column.properties,獲得資源數(shù)據(jù)庫表名稱和字段信息。
3)利用ParseFarXml類解析分公司數(shù)據(jù)查詢條件farTable.xml。
4)根據(jù)Guice容器加載的filepath文件獲得資源數(shù)據(jù)庫iBATIS客戶端(一共得到兩個客戶端實例:farData1、farData2)。
5)設定臨時文件,存儲查找的數(shù)據(jù),供應用程序DistanceDataRowHandler.java解析,轉存到ArrayList中。
3.3.2 自動采集過程觸發(fā)器問題
Quartz是輕量級的組件,能夠用來完成J2EE應用中的定時操作。簡單的來說,Quartz把一個定時事件分成Job(任務)及Trigger(觸發(fā)器)兩個模塊,Job用于定義工作內容,Trigger用于定義觸發(fā)條件,也就是定義任務開始的時間。
關鍵代碼為:
CronTrigger cTrigger = new CronTrigger
("myTrigger",Scheduler.DEFAULT_GROUP,"0 30 23 ? * MON-FRI");
利用上述代碼,就可實現(xiàn)從周一到周五每天晚上的23點30分觸發(fā)保險公司總部應用系統(tǒng),完成從分公司數(shù)據(jù)源進行數(shù)據(jù)采集。
3.3.3 數(shù)據(jù)采集程序
在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)中,數(shù)據(jù)采集涉及到的程序是DistanceDataRowHandler類、DistanceDataTrigger類、DistanceDataTrigger
Impl類。下面分別闡述。
1)開發(fā)DistanceDataRowHandler類
這一步建立查詢工具,將得到的數(shù)據(jù)存到ArrayList對象中,開發(fā)的具體類名稱為DistanceDataRowHandler類,在這個類中,重寫iBATIS的RowHandler方法,利用iBATIS的客戶端進行數(shù)據(jù)查詢。查詢分公司數(shù)據(jù)庫數(shù)據(jù)過程為:首先使用組裝好的查詢條件SQL語句,然后將得到的數(shù)據(jù)重新組裝成完整的插入語句,最后將這些插入語句整體存儲在List中。
2)開發(fā)DistanceDataTrigger類、Distance DataTriggerImpl類
首先查找分公司數(shù)據(jù)庫,然后利用查詢工具DistanceDataRowHandler類將得到的數(shù)據(jù)存儲到總部數(shù)據(jù)庫中,開發(fā)的類為DistanceDataTrigger、DistanceDataTriggerImpl,前者是接口,后者是該接口的實現(xiàn)類。
3.3.4 業(yè)務模塊綁定問題
1)該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)綁定類Bind類在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)中,業(yè)務層的綁定利用Guice解決。
在工程根目錄下新建一個繼承AbstrctModule的Bind類,此類中的configure()方法用來將所有的接口和實現(xiàn)類綁定。主要代碼如下:
通過以上程序,將DistanceDataTriggerImpl、FilialeDaoImpl 、FilialeServiceImpl等實現(xiàn)類與DistanceDataTrigger、FilialeDao、FilialeService等接口類實現(xiàn)綁定。
然后,在當前當前目錄下新建一個類Injectors,用Injectors類將Binds類中的綁定進行注入。這樣,就可以使用Injectors類中的Injecting方法來調用Binds類的注入了。
2)該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)業(yè)務層具體工作過程
下面討論該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)業(yè)務層具體工作過程。
1)Guice啟動時的流程
Guice在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)是如何工作的,首先來看Guice對接口FilialeService及其實現(xiàn)類FilialeServiceImpl之間的綁定過程。
在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)中,利用Guice進行接口綁定序列圖如圖5所示。
圖5 該系統(tǒng)使用Guice進行接口綁定序列圖
(1)根據(jù)該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)業(yè)務需求定義業(yè)務接口及其實現(xiàn)類。
(2)定義接口FilialeService的實現(xiàn)類FilialeServiceImpl,并覆蓋模塊FilialeService接口中configure方法,同時利用Binder類完成具體綁定。Binder類的具體實現(xiàn)在“4.5.3 數(shù)據(jù)采集程序”小節(jié)“3.業(yè)務模塊綁定問題”詳細闡述。
(3)調用com.google.inject包中的Guice類,利用此類的createInjector方法來完成注入。
(4)用“Guice.createInjector(new Bind()).getInstance(FilialeService)”調用綁定接口FilialeService,完成接口FilialeService與實現(xiàn)類FilialeServiceImpl的依賴注入。
2)Guice的運行
在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)中,利用啟動階段創(chuàng)建的注入器(Guice.createInjector())注入對象并內省綁定(將FilialeServiceImpl與FilialeService)。Guice運行時的模型由一個可管理一定數(shù)量綁定的注入器(Injector)組成。由Injector調用綁定類,這樣調用接口FilialeService就等于調用FilialeServiceImpl。
該保險業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)采用JSF-Guice-iBATIS集成框架構建。其中,JSF作為表示層框架,Guice作為業(yè)務層框架,iBATIS作為持久層框架。在開發(fā)過程中,通過Guice提供的依賴注入,結合靈巧的iBATIS持久化框架和動態(tài)的XML解析,再將Guice的受管Bean注入到JSF的后臺Bean中,實現(xiàn)了這三者的結合,達到保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)良好的復用目的,使系統(tǒng)的開發(fā)變得更加容易。與同類系統(tǒng)相比,該保險業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)具有以下優(yōu)勢:
4.1 JSF框架backing bean模式的應用
在進行JSF頁面開發(fā)的過程中,對于每一個JSF頁面,其后臺都應有一個JavaBean與其對應。頁面中要顯示的信息和要輸入的信息都綁定到后臺JavaBean的屬性上,在進行顯示或請求提交時,JSF框架會自動調用與該屬性相對應的get或set方法。
4.2 JSF與Guice的集成
由于JSF和Guice都支持IoC,因此在開發(fā)過程中,可以通過配置文件將Guice的受管Bean注入到JSF的后臺Bean中,實現(xiàn)JSF和Guice的完美結合。
4.3 Guice動態(tài)注入的使用
Guice把業(yè)務邏輯層組件之間的依賴關系通過Guice容器來管理,動態(tài)注入,提高了靈活性和運行效率,達到系統(tǒng)組件良好的復用目的。而且,Guice容器保證把代碼修改和配置文件修改同步。
4.4 數(shù)據(jù)訪問層采用iBATIS框架
數(shù)據(jù)訪問層采用iBATIS Database Layer框架,在分公司數(shù)據(jù)庫結構不同情況下,易于維護。另外,與Hibernate框架相比,降低了開發(fā)難度,提高開發(fā)效率。
4.5 數(shù)據(jù)層多數(shù)據(jù)源的使用
因為該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)數(shù)據(jù)采集來源屬于不同的分公司,因此,在設計中,數(shù)據(jù)層采用多數(shù)據(jù)源的方式,也可有效提高系統(tǒng)的水平伸縮性。
4.6 面向接口編程
在數(shù)據(jù)層設計過程中,分為SQL Maps和DAO層。在DAO層設計過程中,采用接口與實現(xiàn)分離的方式,并通過對象關系模型分析DAO層類關系。這種方式在業(yè)務層設計過程中同樣采用,使系統(tǒng)層次更加清晰,便于維護。
4.7 利用插件quartz實現(xiàn)觸發(fā)器
在該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)中,利用Quartz解決定時觸發(fā)問題,并針對該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)數(shù)據(jù)定時采集特殊需求,比較了Quartz中三種觸發(fā)器功能,最后利用CronTrigger解決問題。
4.8 模型差異
從MVC角度來看,同類系統(tǒng)視圖層采用Struts框架,其中ActionForm模型必須繼承框架類,這樣導致程序緊耦合。該保險行業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)采用的JSF框架,將Struts框架中的ActionForm組件和業(yè)務控制器Action組件合并成一個Backing Bean組件,Backing Bean組件屬于POJO,不需要繼承框架類,顯得比較靈活。
4.9 使用JFreeChart完成圖形分析
借助JFreeChart來實現(xiàn)保險公司經營額時間序列的折線圖、柱狀圖,完成各分支機構數(shù)據(jù)及統(tǒng)計結果表格展示,可以直觀地反映經營額變化情況,便于保險公司決策層采取更有效的措施刺激保險業(yè)績的增長。
應用該保險業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng),能夠極大地提高數(shù)據(jù)統(tǒng)計效率,以往需要層層上報數(shù)據(jù)進行匯總的統(tǒng)計方式,現(xiàn)在完全由該保險業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)自動完成,提高了數(shù)據(jù)統(tǒng)計的準確性和及時性。
該保險業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)將有關分公司數(shù)據(jù)整合起來,對分支機構數(shù)據(jù)進行綜合分析,將數(shù)據(jù)轉化為有用信息,便于管理層關注數(shù)據(jù)的地區(qū)及不同時段的差異性,為保險公司產品開發(fā)、客戶服務提供可靠的依據(jù)。
該保險業(yè)數(shù)據(jù)統(tǒng)計系統(tǒng)便于保險公司積累成功實施經驗,保險營銷管理流程得到進一步優(yōu)化,為保險企業(yè)規(guī)避風險提供了保障;數(shù)據(jù)集中和圖形分析為保險公司管理水平的提升奠定了基礎,促使保險公司從傳統(tǒng)粗放型的管理向精細化管理邁進。
[1]孟平揚.淺析中國保險的社會管理功能[J].技術與市場,2009,(1):21-21.
[2]梁遠航,齊琳琳.我國保險行業(yè)協(xié)會自律的反思與完善[J].財經科學,2009,(6):40-46.
[3]余香.淺談我國保險營銷模式的創(chuàng)新[J].福建商業(yè)高等??茖W校學報,2009,(1):33-36.
[4]曹紅欣.我國保險營銷制度改革探討[J].管理觀察,2009,(13):44-45.
[5]白兆華,張峰.軟件保險問題中動態(tài)加密的研究[J].科技信息,2009,(16):202-205.
[6]胡玉琴.中國養(yǎng)老保險制度改革中性別利益的精算分析[J].統(tǒng)計與信息論壇,2009,(5):63-67.
[7]張曉婷,程耕國,鮑考明.基于JSF框架的化驗室管理系統(tǒng)的設計[J].計算機工程與設計,2009,(9):2289-2292.
[8]朱佳.JSF技術在基金管理系統(tǒng)中的應用與分析[J].科技資訊,2009,(10):18-20.
[9]雷沖,廉迎戰(zhàn).JSF框架的研究及其應用[J].網(wǎng)絡安全技術與應用,2009,(5):69-70.
[10]彭勝,劉衛(wèi)國.基于JSF定制生命周期的AjaX組件開發(fā)[J].計算機應用,2009,(7):1764-1766.
[11]北京皓辰網(wǎng)域網(wǎng)絡信息技術有限公司.http://publish.itpub.net/zt/guice/[EB/OL/].Guice輕量級框架學習專題,2006-07-05.
[12]北大青鳥.Google Guice [EB/OL/].http://www.bdaccp.com/xw/news_view.asp?newsid=1211,2008-6-8.
[13]yiketree.Guice與Spring框架的區(qū)別[EB/OL/].http://hi.baidu.com/yiketree/blog/item/351d4301da27ded1277fb5d2.html,2008-12-10.
[14]scansoft.Guice[EB/OL/].http://baike.baidu.com/view/890473.htm?fr=ala0_1,2009-11-15.
[15]章文躍.在J2EE持久層中用Spring+iBATIS實現(xiàn)Webwork開發(fā)[J].福建電腦,2009,(5):172-173.
[16]李澎林,朱國清,吳斌.基于iBatis SQL Map的數(shù)據(jù)持久層實現(xiàn)應用研究[J].浙江工業(yè)大學學報,2008,(1):72-76.[17]馮浩.基于Struts與iBatis框架的Web開發(fā)在國稅部門的應用研究[J].科技情報開發(fā)與經濟,2007,(34):212-14.
[18]邢波.用ibatis提升一類數(shù)據(jù)庫檢索查詢的性能[J].計算機應用與軟件,2007,(12):205-207.
[19]王付強,方麗娜.基于MVC和Ibatis的Web開發(fā)研究[J].新鄉(xiāng)師范高等??茖W校學報,2007,(5):58-61.
[20]田秋艷,王蕾,吳慶,等.基于JSF+Spring+Hibernate架構的教學資源共享平臺[J].長春工業(yè)大學學報,2009,(3):337-340.
[21]孫華林.基于JSF-Spring-Hibernate架構的研究與應用[J].信息技術,2009,(5):208-211.