【VC++开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了VC++开源代码-硕士论文_基于Spring框架的公安国保信息系统的研究与 实现全文(终稿) - 硕士论文的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
中国人民解放军信息工程大学 硕士学位
论文基于Spring框架的公安国保信息系统的研究与实现 级别:硕士 专业:
计算机应用技术 指导教师:司志刚 20070401 信息工程大学硕士学位
论文 摘要 本课题来源于河南省郑州市公安局和信息工程大学河南省电子商务工程研究中心合作开发的公安国保信息系统。
目前该系统已经在郑州市公安局国内安全保卫支队投入使用,并取得了良好的效果。
本文深入探讨了轻量级开发框架spring技术,分析了其两大核心机制Ioc和AOP,重点剖析了S研ng的W曲MVC框架,并对系统开发中用到其它相关技术如Hibcmale、0RAcLE数据库及页面开发技术咖、JsP、Jn礼进行了分析。
本文根据国保信息系统的需求,通过分析传统的客户机/服务器结构体系及目前较为先进的三层结构设计模式,在三层结构的基础上引入改进过的Spring MVC和Hibemate框架,形成了国保信息系统的开发设计模式—-BISHD模式(即BrowserHmproved sprillg MvC+壬五bernat时Da诅b够e)。
依据BIsHD模式,首先按照数据库的需求分析对数据库的概念结构与逻辑结构进行设计,然后分别对业务层中的视图层、模型层和控制层进行设计。
之后具体描述了国保信息系统的开发环境、数据层、业务层的构建,并以分局研判功能中的显示详细信息为例,展示了系统功能的开发过程。
最后说明了系统的发布与运行情况。
关键词:公安国保信息系统,Sp血g框架,BISHD模式 第1页 信息工程大学硕士学位
论文 Abstract 碱s topic ori咖ates劬m me雠b咖ation sys钯m ofNational s疵gIlard of Public secllri可(ISNSPS),删ch is de、,eloped by也e Mu地cipal Public Secufity Bureall of zhengZholl,Hen趿Province and the El咖nic Co咖erce Eng.meering Research Center of Henan Pro询ce.TheISNSPS h嚣curr朗tly be∞applied iⅡto删ice by也e DomeStic Saf毫g岫rd B瑚ch of办cng办ou M∞icipal Burc肌ofPubnc S∞Ilri锣卸d h勰obtained good e丘酗. The an王cle bas d删y discusscd the Spfing tcchnology of Hgh抑eight deVelop啪ent筋mework锄lalyzed the two core mcchanisms呦ed IoC锄d AOP锄d probed仕le W曲MVC董砌ework of S砸ng谢th朗Ap:h觞is,锄d other relative tecllnologies印曲as}Iil脚ate,Oracle,}ⅡMI,,JSP,J1W儿arc alsocxploredin仕忙article. According to the d锄髓d me跏itiorlal clier‖server of tbe ISNSPS,the article卸_a1),zess劬ctllre sygteIn as well船the desi驴paCteI_n of也e血呛e·1ay盼咖c嘶whjch is more adVancedat pres∞t,On tlle b器is of the山ree.1ayer-s臼咖e the improVed Sp血g MVC and Hibernate丘锄舱s a聆inlro捌,and s0 comes the fom嘶on of也e devel叩iIlg and desi印p砒em forISNSPS called BISHD(Browscr+Improved S血g MVC+Hibcnlate+Da乜IbaSe).The conceptsmlctIlre锄d the lo垂cal org卸ization ofthe缸dbase are吐lus designed,and th芒:n the View 1eVel,modellevel and con仃ol level arc de、rised accordin酎y.Then the amcle describes也e deVelopmentenvironmem of ISNSPS and cons仃uction of the dlata level and tlle班.Ⅳice level iIl detail,孤ddemons嘲es恤develop啦process of血e functio璐of lsNSPS by蛐g也e d“ledinfo】mation displaycd ill the趾alysis删on硒an ex锄ple.h the end tlle disse】删on andot删on of吐屺ISNSPS are mugtraled.Keywords:础咖nation Syst锄of N碰onal S疵gu捌of Pubnc Securi魄Spring F姗ewo咄BISHD P锄t朗!n 第Ⅱ页
原创性说明 本人声明所提交的学位
论文是本人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,
论文中不包含其他人已经发表和撰写过的研究成果,也不包含为获得信息工程大学或其他教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在
论文中作了明确的说明并标示谢意。
学位
论文题目: 基王墨匹.mg框塞的公塞国握信息丕红的婴究皇塞现学位
论文作者签名: 日期:硼7年牛月矽日 学位
论文版权使用授权书 本人完全了解信息工程大学有关保留、使用学位
论文的规定。
本人授权信息工程大学可以保留并向国家有关部门或机构送交
论文的复印件和电子
文档,允许
论文被查阅和借阅;可以将学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位
论文。
(保密学位
论文在解密后适用本授权书。
)学位
论文题目:学位
论文作者签作者指导教师签 信息工程大学硕士学位
论文 第一章绪论1.1研究背景与意义 随着时代的进步,当今社会进入了物流、人流、信息流大爆发时代,
经济全球化,社会信息化,稳定动态化趋势明显,公安工作仅依靠快速反应已远远不能满足斗争需要。
只有实现情报信息获取、采集和共享的网络化、系统化、规范化,下功夫搞好情报信息的收集、分析、研判、反馈,才能使公安工作变事后处置为事前预警,超前工作,防范犯罪,才能使公安机关真正担负起巩固共产党执政地位、维护国家长治久安、保障人民安居乐业三大历史责任。
国内安全保卫支队(简称国保支队)的主要任务是掌握影响政治稳定和国内安全的动态,组织侦破处置危害政治稳定和国内安全的重大事件和突发事件等工作。
情报信息
工作是国保工作的中心环节,只有建立渠道畅通、灵敏高效、覆盖面广的情报信息
网络,把所有可能影响社会稳定和国家安全的一切情况纳入视线内,早发现,早
报告,才能将其控制在基层,处置在萌芽状态【l】。
国保情报信息的特点是种类多、互补性强、关联关系较复杂。
当前公安信息系统的应用多数还停留在档案管理、业务
查询和静态统计等初级应用水平,信息资源的综合开发利用、增值服务的意识不强、手段不足,信息的深层次挖掘很不充分,在信息资源如何为科学决策服务等方面还远未形成切实可行的思路,信息服务能力薄弱【2】。
各业务部门之间、甚至业务部门内部由于信息不能共享,造成资源的浪费和数据的不一致性,应用系统规模效益不高。
因此,为加强国保情报信息的综合利用,根据郑州市公安局信息化建设的要求,需要建设国保信息系统。
国保信息系统可以为上述问题的解决提供实用的系统,能够建立起良好的工作流程和制度,大幅减少人工的工作量,并充分利用自动化技术使信息资源发挥更大的作用,使国保支队更好的完成维护国内社会政治稳定和国家安全、维护国家统一和民族团结、维护宪法确立的基本政治原则的任务。
1.2国内外研究现状 J2EE平台自诞生以来,就专注于企业级Java市场,从很多方面来说,J2EE都是一个伟大的成功,它成功地在从前没有标准的地方建立了标准,大大提升了企业级软件的开放程度,因此得到了整个行业的开发者的广泛支持。
但是,J2EE在一些方面的表现常常无法让入满意,过于复杂的应用程序、令人失望的性能、难以测试、开发和维护的成本都非常高。
J2EE的核心组件Em(Entefpri∞JavaBean,EJB)是一种复杂的技术,虽然很好地解决分布式应用的问题,但是许多情况下也增添了比其商业价值更大的复杂性。
在开发J2髓W曲应用的过程中,易用性方面的问题尤为特殊,当开发者把MVC模式在J2EE平台上实现时,现有的J2EEAPI的复杂性使得开发者将大部分精力花费在同资源交互的处理 第l页 信息工程大学硕士学位
论文上,而对实际应用
系统的关注却不多,这使得开发J2EE应用效率低下的
问题暴露无疑,很多W曲应用都遭遇了毫无必要的过度工程。
框架是一些经过实践证明的、能用来开发高效应用系统的技术【31。
s两ng是RodJohnson在Inte嘞ce2l开发包的基础之上,对其进行进一步改造和扩充形成的一个更加开放、清晰、全面、高效的J2EE轻量级开发框架。
spriIlg自从诞生之日起就以一种不可思议的速度迅速发展,基于sp血g的J2髓轻量级框架技术也越来越被开发人员所选用,它已经进入了J2EE的核心,并在引领整个J2EE开发、架构的方向14】。
在国内,有部分
软件公司开始使用spring框架进行软件开发,目前真正掌握sp血g技术的IT技术人员比较少,不能满足国内IT企业的技术需求。
但是因为s研ng的优势所在,有相当一部人在研究和应用s面ng框架,其中有走在前列的夏昕老师、sp抽g参考手册的翻译团队等,在S嘶g中文论坛上有很多s两Ilg的狂热爱好者。
总体来说,国内的spfing研究和应用处于探索阶段151。
在西方发达国家,sp血g的研究和应用已经掀起了热潮。
首先,各种关于Sp咖g的书籍层出不穷。
例如s埘ng框架开发者的《Professional Java Developmem埘th the S面IlgFraInework》、Sprillg的作者Rod JohIlson编写的《勘【pert One叼n-one J2EE Design andDewlopment》一书等。
其次,sp血g在企业中的应用逐渐成熟,为J2EE应用中常见的问题提供简单、有效的解决
方案。
最后,sp血g框架在不断的发展和完善。
从最初发布到现在的2.OM3版本,sp血g框架己趋于行业标准。
spring有一个兴旺蓬勃的开发者和用户社群,并且日益变得强大而可靠。
因此Sp血g的未来是光明的。
1.3
论文的主要工作及内容安排
论文的主要工作如下: l、深入研究了轻量级开发框架S皿ng,分析了其两大核心机制Ioc和AOP,重点剖析了s埘ng的w曲MVc框架,并对系统开发中用到其它相关技术如Hibemate、ORAcLE数据库及页面开发技术}rrML、JsP、Jn也进行了分析。
2、分析了传统的客户机/服务器设计模式及三层结构设计模式。
3、在三层结构的基础上引入改进过的Spring MVC和Hibema士e框架,形成了国保信息系统的开发设计模式—BISHD模式(即Brow∞r+hproved Sp血g MVC+Hibemate+Da伽ase)。
4、依据BIsHD模式,对公安国保信息系统进行了
设计。
5、实现了公安国保信息系统。
论文的内容安排如下: 第一章绪论描述
论文的立项背景和现实意义,阐明spr.mg框架的国内外研究现状和发展趋势。
第二章s舛ng框架研究第1节对s研ng框架进行简要概述,包括s研ng框架结构及 第2页 信息工程大学硕士学位
论文其组成模块。
第2节描述Spring框架的技术原理,重点阐述了sp曲g Ioc和sp血gAOP。
第三章相关技术研究第1节介绍了Hibemate技术。
第2节介绍了。
瑚lcle数据库系统。
第3节描述了页面开发技术。
第四章公安国保信息系统的设计第1节进行了系统需求分析。
第2节设计了系统开发模式一BISHD模式。
第3节对系统数据层进行了设计。
第4节对系统业务层进行了设计。
第五章公安国保信息系统的实现第1节介绍了系统的开发环境。
第2节介绍了数据层的构建。
第3节介绍了业务层的构建。
第4节通过示例展示系统功能开发的过程。
第5节介绍了系统的发布与运行。
第六章研究总结及展望对本研究工作进行总结,分析系统研究成果和下一步研究需要解决的问题。
第3页 信息工程大学硕士学位
论文 第二章Sprillg框架研究2.1 spring框架概述 现在open Source框架很多,但是属于Java,J2EE架构级的优秀框架不多,sp血g从一开始就受到众多开发者的青睐,因为它是优秀的、是为开发者设计的实用框架。
sm培是一个
开源框架,是为了解决企业应用程序开发复杂性而仓Ⅱ建的旧。
框架的主要优势之一就是其分层架构,分层架构允许开发者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架17J。
spring框架由7个定义良好的模块组成。
Sp血g模块构建在核心容器之上,核心容器定义了创建、配置和管理be趾的方式,如图2.1所示。
图2.1即痂19框架结构图 组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。
每个模块的功能如下: ☆sp血g核心容器:核心容器是sp血g框架中最为基础、重要的模块,提供了Spring框架的基本功能。
核心容器的主要组件是BeanFacto叮,BeanFactofy使用控制反转(IoC)模式将应用程序的配置和依赖性规范与实际的应用程序
代码分开。
☆s面ng上下文:直接位于s埘ng核心模块之上。
除了继承sp血g核心模块的功能外,还添加了用于资源绑定、事件移植、资源装载以及透明地装载上下文等功能。
这对于w曲应用和J2EE应用尤为有效,甚至可以认为sp血g引入上下文更多地是为了简化开发w曲应用和J2EE应用目的的。
☆sp血gAOP:通过配置管理特性,sprir喀AOP模块直接将面向方面的编程功能集成到了s皿由g框架中。
所以,可以很容易地使Spring框架管理的任何对象支持AOP。
s皿ngAoP模块为基于S研ng的应用程序中的对象提供了事务管理服务。
通过使用s两ngAOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。
第4页 信息工程大学硕士学位
论文 ☆S州ng DAO:巾BC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。
异常层次结构简化了错误处理,并且极大地降低了需要编写的异常
代码数量(例如打开和关闭连接)。
S面ng DAO的面向JDBC的异常遵从通用的DAO异常层次结构。
☆Spring ORM:S曲g框架插入了若干个0RM框架,从而提供了ORM的对象关系工具,其中包括JDo、Hibemate和iBatis SQL Map。
所有这些都遵从s面ng的通用事务和DAO异常层次结构。
☆S两ng w如模块:w曲上下文模块建立在应用程序上下文模块之上,为基于w曲的应用
程序提供了上下文。
所以,S呻g框架支持与Jakarta s廿傩的集成。
W曲模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
☆sp血g MVc框架:MVc框架是一个全功能的构建w曲应用程序的Mvc实现。
通过策略接口,MVC框架成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、V.e10city、T玎鹊、iTe)【t和POI。
Spring框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境。
sp血g的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。
毫无疑问,这样的对象可以在不同J2EE环境(W曲或Em)、独立应用程序、测试环境之间重用。
2.2 Spring框架分析 2.2·1 Sp—丑g IoC 控制反转(mversion ofCoD血Dl,IoCl8】),也称作依赖注入(D印endency蝎ection),基本概念是:不创建对象,但是描述创建它们的方式。
在
代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。
容器(在s蜘崦框架中是Ioc容器)负责将这些联系在一起。
依赖注入是Spfing框架的基础。
Spring在基于依赖注入的基础之上,同时还提供了其他大量的功能,比如springMVc框架、事务管理框架、DAo支持、支持主流的O瓜Mappillg工具、支持各种标准J2EE组件技术的集成、集成各种视图(W曲视图和非W曲视图)技术。
这也是使用S埘ngIoc容器优于其他Ioc容器的理由。
在sp血g中,两个最基本最重要的包是org.sp|缸g舶mework.bcans和org.洲ng疗锄ework.context。
这两个包中的
代码为S面ng的依赖注入特性提供了基础。
它的设计目标是与JavaBe趾组件一起使用。
这两个包通常不是由用户直接使用,而是由服务器将其用作其他多数功能的底层中介。
为实现对Sp血gIoC容器的访问,应用
代码可以通过如下两个接口完成。
第5页 信息工程大学硕士学位
论文 1)Be锄Factory:位于org.sp血舒阻me、】l,ork.beans.缸tory包中。
开发者借助于配置文件,能够实现对JavaBe趾的配置和管理。
主要用于开发Java应用,尤其是在物理资源(内存有限)受限的场合,比如Applet应用。
因为org.sp】rhlg如mework.be眦s.fac呻.BcaIlFactory是一个简单接口,所以可以针对各种底层存储方法实现。
最
常用的BeanFactory定义是Ⅺ血BeaIlFactory,它根据Ⅺ咀,文件中的定义装入bean,如下所示。
BeanFactory factory= new xMLBeanFactory(new FileInputStre鲫(’Ⅲybean.xⅢl”)) 在Ⅺ皿文件中定义的Be姐是被消极加载的,这意味在需要be缸之前,be趾本身不会被初始化。
要从BeanF咖检索bean,只需调用ge毋e锄O方法,传入将要检索的bc∞的名称即可,如下所示。
每个be∞的定义都可以是POJO(用类名和JavaBean初始化属性定义)或FactoryBe∞。
Factc呵Be跹接口为使用sp血g框架构建的应用程序添加了一个间接的级别。
2)ApplicalionCome殖:位于orgspring触mework.context包中。
ApplicationConte】(t构建在BeanFact0巧基础之上,即继承于它。
除了具有Beanfactofy的功能之外,它还添加了其他大量功能,比如同S埘ng IoC集成、处理消息资源、添加了事件、声明(非)容器提供的服务等。
主要用于开发J2EE应用,这也是Sp血培推荐使用的接口。
2.2.2 Spring AoP 面向方面的编程(Aspec∞riented Prog均mmjng,AOP【9】),是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化【lo】。
AOP的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。
sp血g AOP实现是sprh培框架的重要组成部分,它实现了AOP联盟约定的接口。
当然,如果开发者不需要使用AoP,而只需要sp血g Ioc容器,则可以不使用,S砸Ilg框架能提供这种灵活性。
Sp血gAoP是由100%Java开发完成的,因此它能够秉承Java的~切优势。
spring AOP能够提供如下几方面的优势: ☆允许开发者使用声明式企业服务。
☆开发者可以开发满足业务需求的自定义方面。
☆开发s曲g AOP Advicc很方便。
AOP和IoC是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。
在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和Java类中才能实现日志功能。
在AoP方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。
当然,优势就是Java类不需要知道日志服务的存在,也不需 第6页 信息工程大学硕士学位
论文要考虑相关的
代码。
所以,用s埘由g AOP编写的应用程序
代码是松散耦合的。
AOP的功能完全集成到了spring事务管理、日志和其他各种特性的上下文中。
下面介绍AOP中的几个重要概念【9l。
1)切面(A;四:~个关注点的模块化,这个关注点实现可能另外横切多个对象。
2)连接点(JoinPoint):程序运行过程中的某个阶段点。
如某个方法调用,或者某个异常被抛出。
3)通知(Ad、,ice):在某个连接点所采用的处理逻辑。
4)切入点((PointCut):指定一个通知将被引发的一系列连接点的集合。
5)引入(In缸oduction):添加方法或字段到被通知的类。
S砸ng允许引入新的接口到任何被通知的对象。
6)目标对象(Targ眈Object):包含连接点的对象。
也被称作被通知或被代理对象。
7)AOP代理(AOP Proxy):AOP框架创建的对象,包含通知。
在Sp血g中,AOP代理可以是mK动态代理或者CGLm代理。
8)织入(weaviIlg):组装方面来刨建一个被通知对象。
这可以在编译时完成也可以在运行时完成。
s皿ng和其他纯JavaAoP框架一样在运行时完成织入。
2.2.3 Sp—ng MVC Sp血喀的web框架是一个请求驱动的web框架,核心是基于分发器(DispatchSeⅣlet)设计的。
DispatchServlet将从webpage收集到的不同请求分发到不同的控制器,控制器ConnDUer接收request和respoIlse参数,返回ModelAndvie√儿】。
而其他的框架控制器一般只返回vicⅥm锄e,Model还需要通过其他的途径返回【121。
s砸ng提供了一个非常灵活的MVc框架的实现和扩展方式,能够与许多流行的web框架集成,如S劬ts,与其他现有的web框架比较,在依赖注入IoC方面也更加出色。
1、控制器IljJ s呻培中的控制器概念相当于s饥Its框架中的action,实现Mvc框架中的模型。
控制器定义了应用的行为,至少能使用户访问到这些行为。
控制器解释用户输入,并将其转换成合理的模型数据,从而可以进一步地由视图展示给用户。
Spfing还以一种抽象的方式实现了控制器的概念,这样使不同类型的控制器可以被创造。
s砸Ilg的控制器包含表单控制器、命令控制器、执行向导逻辑的控制器等。
sp血g控制器架构的基础是org.sp血g曲mework.mvccon昀11er接口。
第7页 信息工程大学硕士学位
论文 controner接口仅仅声明了~个方法,它能够处理请求并返回合适的模型和视图。
sp血gMvC实现的基础就是:ModelAndview和coDhDIler。
因为coHa_ouer接口是完全抽象的,spring提供了许多已经包含一定功能的控制器。
控制器接口仅仅定义了每个控制器提供的共同功能:处理请求并返回一个模型一个视图。
1)Abs扛actCont∞Uer 当然,就一个控制器接口是不够的。
为了提供一套基础设施,所有的Sp血g控制器都从Abgtractcon血DUer继承,Abs仃actconnDuer提供缓存和和其他比如m商姊e的设置的功能。
当使用Abs仃actConnDller作为控制器基类时(一般不推荐这么做,因为有许多预定义的控制器可以选择), 只需要重载h纽dleRequestIntemal (Htcpsen,letIteque%HtIpseⅣl甜沁sponse)这个方法,实现逻辑,并返回一个Mode№dView对象。
2)Mlllt认ctionContr01ler S皿培提供一个多动作控制器,使用它可以将几个动作合并在一个控制器里,这样可以把功能组合在一起。
多动作控制器存在于一个单独的包中—org sp血g如m聃诎.web.mvc.哪ltiacti∞,它能够将请求映射到方法名,然后调用正确的方法。
一个多动作控制器的方法需要符合下面的格式: 由于Mult认ctionCon仃oUer不能判断方法重载,所以方法重载是不允许的。
此外,可以定义exc印tion llandlerS,它能够处理从指定的方法中抛出的异常。
包含异常处理的动作方法需要返回一个Mode队ndVigw对象,并符合下面的格式: Me也odN锄eRcsolvcr根据收到的请求解析方法名,有三种解析器可供选择,分别是 第8页 信息工程大学硕士学位
论文Pa均meterM劬odN锄eResol、^盱 , lDternalPa:IhM劬o‘N锄eResolver 和P删iesMetbodNameResolver。
也可以自己实现解析器。
3)命令控制器 s面ng的co姗l柚dCo曲-0uers是spring MVC包的重要.