微博系统的设计与实现.doc

上传人:小飞机 文档编号:4263747 上传时间:2023-04-12 格式:DOC 页数:50 大小:1.78MB
返回 下载 相关 举报
微博系统的设计与实现.doc_第1页
第1页 / 共50页
微博系统的设计与实现.doc_第2页
第2页 / 共50页
微博系统的设计与实现.doc_第3页
第3页 / 共50页
微博系统的设计与实现.doc_第4页
第4页 / 共50页
微博系统的设计与实现.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《微博系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《微博系统的设计与实现.doc(50页珍藏版)》请在三一办公上搜索。

1、本科毕业论文(设计)(2013届本科毕业生)题目: 微博系统的设计与实现 学生姓名: 学生学号: 学院名称: 软件学院 专业名称: 计算机科学与技术 指导教师: 二零一三年五月【摘 要】随着社会的进步,时代的发展,微博的使用在网上已经非常广泛,微博系统对用户而言,除了方便之外,还是与朋友之间沟通交流的桥梁。该微博系统的设计与实现正是适应了这种要求。本系统采用Java语言,MySQL数据库以及Struts、Hibernate、Spring技术开发,以Eclipse作为开发工具进行研发。其功能主要包括系统登录和注册、我的微博模块、个人中心模块、最新动态模块、留言板模块以及帮助中心六大部分。其中在我

2、的微博模块中有查看我的微博和查看我的好友功能,还有更多设置功能;在个人中心模块中具体分为完善资料功能和对密码的操作;在最新动态模块中可以发表微博和查看历史微博内容;在留言板模块中可以发表留言和查看历史留言信息等;而帮助模块中主要是对一些常见问题进行解答。本论文完整介绍了系统的功能和开发的过程,重点说明了设计的重点与设计思想,详细阐述了系统开发的需求分析以及相关技术的介绍。【关键字】微博系统,Java,Struts,HibernateDesign And Implementation Of MicroBlog System【Abstract】With the progress of societ

3、y, the development of the times. MicroBlog online has been very widely used, MicroBlog System for users, in addition to convenience, or bridge of communication between friends. The MicroBlog System is adapted to the design and implementation of the requirements. The system uses the Java language, My

4、SQL and Struts, Hibernate, Spring technology, Eclipse as development tool. Its main functions include six parts of system login and registration, my MicroBlog module, personal center module, recent news module, message board module and help center module. My MicroBlog module includes message select,

5、 friends select, add, delete, and more settings functions; personal center module includes password modify and query functions; recent news module includes informations add, delete, modify and query functions; message board module includes messages add, delete, modify and query functions; in the hel

6、p center module, is to answer some common questions. This thesis introduces the systems functions and procedure of development completely, declares the point of design and the thinking of design importantly and states the requirement analysis of the system development in detail.【Keywords】MicroBlog S

7、ystem, Java, Struts, Hibernate目 录第一章绪论11.1 微博的研究背景11.2 国内外研究现状11.3 本文结构4第二章相关技术介绍62.1 JAVA语言概述62.2 JAVA EE平台技术介绍72.3 MySQL数据库简介142.4 MVC设计模式简介15第三章系统需求分析193.1 系统总体需求分析193.2 系统开发设计思想203.3 系统功能结构203.4 系统的操作过程233.5 系统总体结构图243.6 数据库的概念243.7 数据库E-R图253.8 系统界面设计25第四章详细设计274.1 数据库的选择274.2 数据库表的描述274.3 系统开发

8、环境介绍29第五章系统实现305.1 系统登录和注册305.2添加留言信息335.3 删除好友功能365.4 修改个人信息375.5 查询留言信息395.6 其他功能40第六章系统测试及维护426.1 系统测试426.2 测试用例426.3系统维护43第七章总结与展望447.1 总结447.2 展望44后 记45参考文献46第一章 绪论1.1 微博的研究背景微博,就是微博客(MicroBlog)的简称,是一个基于用户关系的信息分享、传播以及获取的平台,用户可以通过WEB、WAP以及各种客户端组建个人社区,以140字左右的文字更新信息,并实现即时分享。美国的twitter是最早也是最著名的微博,

9、根据一些相关的公开的数据,截至2010年1月份,该产品在全球已经拥有7500万注册用户。在2009年8月份,中国最大的门户网站新浪网推出“新浪微博”内测版,成为门户网站中第一家提供微博服务的网站,从此微博正式进入中文上网主流人群的视野。微博是一种通过关注机制分享简短实时信息的广播式的社交网络平台。陈永东,国内知名新媒体领域研究学者,他在国内率先给出了微博的定义。其中有五方面的理解:1、关注机制:分为单向和双向两种;2、内容简短:通常为140字;3、实时信息:最新的实时信息;4、广播式:公开的信息,谁都可以浏览以及转播;5、社交网络平台:把微博归为社交网络。微博为广大用户提供了这样一个平台,你既

10、可以以观众的身份在微博上浏览你感兴趣的信息,也可以以发布者的身份在微博上发布内容供别人浏览。发布的内容一般较短,通常为140字的限制,由此命名为微博。当然,也可以发布图片,分享歌曲、视频等。微博有两方面的含义:首先,对于一些强调版面布置的博客来说,微博主要是由简单的只言片语组成,从这个角度来说,微博对用户的技术要求门槛很低,而且与博客相比,对语言的编排组织的要求没那么高。第二,微博浏览非常方便,由于微博开通的多种API,所以用户可以通过手机、网络等方式来即时更新自己的个人信息,深受广大用户的喜爱。微博的特点:信息获取具有很强的自主性、选择性;微博宣传的影响力具有很大弹性,与内容质量高度相关;内

11、容短小精悍。微博的内容限定为140字左右,内容简短,不需长篇大论,门槛较低;信息共享便捷迅速,这也是微博最大的特点。1.2 国内外研究现状 1.2.1 微博在国外的发展史埃文威廉姆斯(Evan Williams)是博客技术先驱blogger的创始人,他在2006年3月创建的新兴公司Obvious推出了大微博服务。在最初阶段,这项服务的功能很不完善,只是用于向好友的手机发送文本信息。Twitter是由blogger的创始人威廉姆斯(Evan Williams) 在2006年3月推出的,其英文的原意为小鸟的叽叽喳喳声,此时功能有些改进,用户可以使用数百种工具更新信息。Twitter的出现把世人的眼

12、光引入了一个叫微博的小小世界里。截至2007年5月,国际间计算总共有111个类似Twitter的网站。然而,最受人关注的仍是Twitter,在2007年,在得克萨斯州奥斯汀举办的南非西南会议中赢得了部落格类的网站奖。Plurk和Jaiku是Twitter的主要竞争对手。由于Twitter的发展前景,国内一些人开始蠢蠢欲动。从校内网起家的王兴,在2007年5月创建了饭否网。而作为一个拥有4.1亿QQ用户的企业腾讯,看着用户对随时随地发布自己状态的需求愈发强烈后,在2007年8月13日腾讯滔滔面世。但事情没有预期发展的好,Twitter建立的“微型王国”不是在短时间内掘出黄金的浅矿,所以国内微博企

13、业目前尚处于慢热的状态。国内微博不约而同地将现在的目光放在了产品调整以及服务完善上,在还没有办法吸引到风险投资的眼光之前,他们最需要做的可能是如何靠自己的能力继续活下去。1.2.2 微博在国内的现状及发展趋势中国第一家带有微博色彩的饭否网于2007年开张开始,到2009年,微博这个新词汇以摧枯拉朽的姿态扫荡世界,不久便成为全世界最流行的词汇。国内大批老牌微博产品(饭否、腾讯滔滔等)在2009年7月中旬开始停止运营,一些新产品开始进入人们的视野:6月份开放的Follow5,7月份开放的9911,8月份开放的新浪微博等。在2010年,国内微博开始崛起。四大门户网站均开设微博。根据一些相关公开数据显

14、示,截至2010年1月份,在全球范围内,该产品已经拥有7500万注册用户。2011年上半年,我国微博用户迅速增长,其数量从6331万增至1.95亿,半年增幅高达208.9%。微博在网民中的普及率从13.8%增至40.2%。从2010年底至今,手机微博在网民中的使用率比例从15.5%上升到34%。 图1-1 中国微博市场用户周覆盖人数图1-2 用户访问次数及有效浏览时间集中度至今,因为新浪微博抢占了先机,其用户数已经超过1亿,再加上其在整体的战略执行上也比较彻底到位,所以获得了现在的地位。仅仅两年时间,新浪微博就为新浪创造了几十亿美金的巨额收入。而腾讯微博作为另一个微博巨头,也发展迅猛。其拥有近

15、5亿的QQ注册用户,其中2亿左右是活跃用户。这些人受潮流趋势的影响很快开通腾讯微博。另外其作为重要的推广渠道。企业用户通过注册腾讯官方微博,能够迅速的扩大企业的知名度。高校教育平台也通过微博来推动了中国教育事业信息化发展的步伐。互联网实验室认为,我国微博将向工具化、细分化、移动化和开放化等方向发展。如下图所示。图1-3 发展方向研究图现在,已经有很多微博服务商对微博网站进行了专业细分,如和讯网推出的财经微博,搜房网推出的房地产专业微博等。随着这种细分与竞争,细分化的趋势将更加明显。1.2.2 中外微博的文化差异在国内,关系社会这一本质属性是微博抓住的文化特征,中国人社会认同的结构建立在一套强有

16、力的关系体系之中,群体化和联系化是其文化内核。一个人社会地位的高低取决于社会关系的强弱。关系是实现权力重构的核心的一种资本,因此,微博的发展过程,也是新权力者关系资本积累的过程。在国外,微博Twitter的产品初衷正如单词Twitter的英文原义鸟儿叽叽喳喳的叫声。它抓住了美国人善于交谈的个性、渴望表达和信息分享的特征,正如一个充斥了个人琐碎的思索、片段化的情感的窗口。1.3 本文结构第1章 绪论,介绍微博的研究背景,国内外的发展史及论文的结构等。第2章 相关技术介绍,对微博的设计和实现过程中用到的开发语言、平台技术以及框架技术进行介绍,主要阐述了JAVA语言、JAVA EE企业级应用、三大框

17、架、MySQL、MVC模式。第3章 系统需求分析,对系统的总需求进行分析,并对我的微博模块、个人中心模块、最新动态模块、留言板模块、帮助中心模块的需求进行的分析。 第4章 详细设计,在需求分析的基础上,进行总体设计,并对我的微博模块、个人中心模块、最新动态模块、留言板模块进行详细设计,进行数据库设计,对并数据关系进行说明。第5章 系统实现,系统总体实现部分主要论述一些功能子模块的实现,例如系统登录和注册、添加留言信息、删除好友功能、修改个人信息等。第6章 系统测试及维护,包括对测试原理及常用软件测试方法的介绍,针对登录部分设计测试用例,并对测试的结果如何进行说明。第7章 总结与展望,总结微博系

18、统的研究情况,以及在设计和实现过程中的优点以及本系统还需要进行改进的地方。第二章 相关技术介绍2.1 JAVA语言概述JAVA最初被命名为Oak,这类语言可以来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题,其目标设定在家用电器等小型系统的编程语言,因为这些智能化家电的市场需求没有Sun预期的高,所以放弃了该项计划。但是随着互联网的发展, Sun看到了Oak在计算机网络上的广阔应用前景,所以在Oak几近失败之时改造了Oak,并且正式发布,命名为“Java”。Java 编程语言的风格与C、C+ 语言十分类似。不同的是:Java是一个纯的面向对象的程序设计语言,Java舍弃了C +

19、语言中容易引起错误的指针(用引用来取代)、多重继承(用接口来取代) 、运算符重载(operator overloading)等特性,Java继承了C+语言面向对象技术的核心,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧2。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性3。Java语言不同于一般的编译执行计算机语言和解释执行计算机语言。Java的运行机制是首先将源代码编译成二进制字节码(bytecode),也就是所谓的机器语言,然后依赖各

20、种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但是,在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。Sun 公司在推出 Java 之际就将其作为一种与传统程序不同的开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。Sun 公司的口号之一是“Java 语言靠群体的力量而非公司的力量”,也获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式是完全不同的4。 Java编程语言是个简单、面向对象

21、、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。这是Sun公司对Java 编程语言的解释。Java平台是基于Java语言的平台。这样的平台目前非常流行,因此,微软公司先后推出了与之竞争的.NET平台以及模仿Java的 C# 语言。Java的主要特性:Java语言是简单的、面向对象的、分布式的,也是健壮的,更是安全的,Java语言的体系结构是中立的,Java语言具有可移植、多线程、动态等特征,Java也是一种解释型的语言,Java是高性能的。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Ja

22、va平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提 供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。2.2 JAVA EE平台技术介绍JAVA EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循JAVA EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。JAVA EE技术的基础就

23、是核心Java平台或Java 2平台的标准版,JAVA EE不仅巩固了标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构5。JAVA EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发

24、平台,JAVA EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans6,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。JAVA EE 的四层模型,如图2.1所示。(1)运行在客户端机器上的客户层组件。(2)运行在JAVA EE服务器上的Web层组件。(3)运行在JAVA EE服务器上的业务逻辑层组件。(4)运行在EIS服务器上的企业信息系统(Enterprise information system)层软件。图2-1 JAVA EE的4层模型图2.2.1 Struts技术简介Struts最早是作

25、为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助减少在运用MVC设计模型来开发Web应用的时间。随着JSP 与Servlet 技术大量应用于以Web 为基础的应用程序,Java 开发人员群体认为应以较佳的模式以提升Web 应用程序的可维护性与重复使用性。早期JSP 规格书

26、中曾列举两种可行之JSP 应用架构,分别为Model1 与Model 2。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。在Model 1 架构中,JSP 直接处理Web 浏览器送来的请求(Request),并辅以JavaBean 处理应用相关逻辑。Model 1 架构单纯编写比较容易,但在Model 1 中JSP 可能同时肩负View与Controller 角色,两类程序代码有可能混杂而不易维护。而Model 2中将Servlet 纳入架构中扮演前端Controller角色,将Web浏览器送出的请求集中送至Servlet ,Servlet 可集中

27、管理使用者登入、权限控制、多国语言转换等前置处理,再视需求转向给对应的JSP 处理。Model 2 中采用了较佳的MVC模式,但增加了编写复杂度。Struts是Apache软件基金下Jakarta项目的一部分。除Struts之外,还有其他成功的开源产品,包括Tomcat, Ant 和Velocity。2000 年Craig R. McClanahan 先生贡献了他编写struts的JSP Model 2架构的Application Framework 原始程序代码给Apache 基金会,成为Apache Jakarta 计划Struts Framework前身。Struts框架的主要架构设计和

28、开发者是Craig R.McClanahan。Craig 也是Tomcat 4的主要架构师,以及Java Web Services Developer Pack的主要架构师和实现者。他现在是Sun的JavaServer Faces (JSR-127) 以及J2EE平台的Web层架构的规范领导。Craig R. McClanahan 先生是JCP ExpertGroup 成员之一,曾参与JSP 规格制定与Tomcat 4 之编写,因此Struts Framework 广受Java 开发人员群体所重视。Borland 自2002 年底开始于开发工具JBuilder 中支持Struts Framew

29、ork。Struts最早是作为Apache Jakarta项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages、Servlet、标签库以及面向对象的技术水准。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个

30、很好的起点。Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。Struts可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。Struts提供的类使得开发工作更加简单,这些类包括:1. 控制程序流程的类;2. 实现和执行程序事务逻辑的类;3. 自定义的标记库使得创建和验证HTML表单更加容易。2.2.2 Hibernate技术简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的

31、场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这6个核心接口分别加以介绍。Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很

32、多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数

33、据库指定一个SessionFactory。Configuration类负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语句或SQL语句两种表达方式。Hibernate主键介绍:Assigned方式由用户生成主键值,并且要在save()之前指定否则会抛出异常

34、 特点:主键的生成值完全由用户决定,与底层数据库无关。用户需要维护主键值,在调用session.save()之前要指定主键值。Hilo使用高低位算法生成主键,高低位算法使用一个高位值和一个低位值,然后把算法得到的两个值拼接起来作为数据库中的唯一主键。Hilo方式需要额外的数据库表和字段提供高位值来源。默认情况下使用的表是hibernate_unique_key,默认字段叫做next_hi。next_hi必须有一条记录否则会出现错误。特点:需要额外的数据库表的支持,能保证同一个数据库中主键的唯一性,但不能保证多个数据库之间主键的唯一性。Hilo主键生成方式由Hibernate 维护,所以Hilo

35、方式与底层数据库无关,但不应该手动修改hi/lo算法使用的表的值,否则会引起主键重复的异常。Increment方式对主键值采取自动增长的方式生成新的主键值,但要求底层数据库的支持Sequence。如Oracle,DB2等。需要在映射文件xxx.hbm.xml中加入Increment标志符的设置。特点:由Hibernate本身维护,适用于所有的数据库,不适合多进程并发更新数据库,适合单一进程访问数据库。不能用于群集环境。Identity当时根据底层数据库,来支持自动增长,不同的数据库用不同的主键增长方式。特点:与底层数据库有关,要求数据库支持Identity,如MySQl中是auto_incre

36、ment, SQL Server 中是Identity,支持的数据库有MySql、SQL Server、DB2、Sybase和HypersonicSQL。 Identity无需Hibernate和用户的干涉,使用较为方便,但不便于在不同的数据库之间移植程序。Sequence需要底层数据库支持Sequence方式,例如Oracle数据库等。特点:需要底层数据库的支持序列,支持序列的数据库有DB2、PostgreSql、Oracle、SAPDb等在不同数据库之间移植程序,特别从支持序列的数据库移植到不支持序列的数据库需要修改配置文件 。Native主键生成方式会根据不同的底层数据库自动选择Iden

37、tity、Sequence、Hilo主键生成方式。特点:根据不同的底层数据库采用不同的主键生成方式。由于Hibernate会根据底层数据库采用不同的映射方式,因此便于程序移植,项目中如果用到多个数据库时,可以使用这种方式。UUID使用128位UUID算法生成主键,能够保证网络环境下的主键唯一性,也就能够保证在不同数据库及不同服务器下主键的唯一性。其最大的特点就是能够保证数据库中的主键唯一性,这样就可以节省存贮空间。Foreign用于一对一关系中。GUID主键生成方式使用了一种特殊算法,保证生成主键的唯一性,支持SQL Server和MySQL数据库。2.2.3 Spring技术简介Spring

38、是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如下图所示。图2-2 Spring模块Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容

39、器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP

40、。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。 Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括

41、 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tile

42、s、iText 和 POI。 Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境 (Web 或 EJB)、独立应用程序、测试环境之间重用。简单来说,Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。IOC和AOP:控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器 (在 Spring

43、框架中是 IOC 容器) 负责将这些联系在一起。在典型的 IOC 场景中,容器创建了所有对象,并设置必要的属性将它们连接在一起,决定什么时间调用方法。下表列出了 IOC 的一个实现模式。类型 1服务需要实现专门的接口,通过接口,由对象提供这些服务,可以从对象查询依赖性(例如,需要的附加服务)类型 2通过 JavaBean 的属性(例如 setter 方法)分配依赖性类型 3依赖性以构造函数的形式提供,不以 JavaBean 属性的形式公开。Spring 框架的 IOC 容器采用类型 2 和类型3 实现。AOP就是面向方面的编程,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行

44、为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。当然,优势就是 Java 类不需要知道日志服务的存在,也不需要考虑相关的代码。所以,用 Spring AOP 编写的应用程序代码是松散耦合的。AOP 的功能完全集成到了 Spring 事务管理、日志和其他各种特性的

45、上下文中。IOC 容器 Spring 设计的核心是 org.springframework.beans 包,它的设计目标是与 JavaBean 组件一起使用。这个包通常不是由用户直接使用,而是由服务器将其用作其他多数功能的底层中介。下一个最高级抽象是 BeanFactory 接口,它是工厂设计模式的实现,允许通过名称创建和检索对象。BeanFactory 也可以管理对象之间的关系。 BeanFactory 支持两个对象模型。 单态 模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想。 原型 模型确保每次检

46、索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。 bean 工厂的概念是 Spring 作为 IOC 容器的基础。IOC 将处理事情的责任从应用程序代码转移到框架。正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。2.3 MySQL数据库简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。Sun公司于2008年1月16号收购了瑞典MySQL AB公司。而在2009年,Oracle又收购了SUN。当时,没有任何人对MySQL的前途抱乐观的态度。但是目前,MySQL被广泛地应用在Int

47、ernet上的中小型网站中。由于其速度快、体积小、总体拥有成本低,尤其MySQL是开源的这一特点,所以许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL特性:1.使用C和C+编写,并经过了多种编译器进行测试,保证源代码的可移植性;2.支持FreeBSD、AIX、OpenBSD、MacOS、Novell Netware、Solaris、HP-UX、Linux、OS/2 Wrap、Windows等多种操作系统;3. MySQL为多种编程语言提供了API。这些编程语言包括C、C+、Java、Python、PHP、Perl、Ruby、Tcl和Eiffel等;4.支持多线程,可以充分利用CPU资源;5.使用优化的SQL查询算法,有效地提高查询速度;6.既能够作为一个单独的应用程序,应用在客户端服务器网络环境中,也能够作为一个库,嵌入到其他的软件中提供多语言支持,常见的编码如中文的BIG5、GB 2312,日文的Shift_JIS等都可以用作数据表名和数据列名;7.提供TCP/IP、JDBC和ODBC等多种数据库连接途径;8.提供一些管理工具,例如:管理、检查、优化数据库;9.可以处理拥有上千万条记录的大型

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号