版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要考评是当今教学管理的核心问题,现以成为教学管理的重要组成部分。随着教学管理的科学发展,学生对讲师进行点评,讲师对自己在教学过程中的了解,以及领导对讲师的考核,这些互动要求迫切需要一个能够真实反应学生对老师意见的考评系统。本考评系统建立在以实绩为内容、综合评分为基础、现代计算技术为手段的基础上,解决了当前考评管理中无法按实绩、无法综合评价和计量考评工作量大、不易操作等难题。在Eclipse开发环境下,采用了JSP、Struts、Spring技术,以Hibernate连接,访问Mysql数据库。功能实现方面具体分为学生点评模块,讲师模块,项目经理模块,admin模块,manager模块。该系统
2、界面美观、操作简单、使用方便。关键词:考评系统,Eclipse,JSP,Struts,Spring,Mysql;AbstractEvaluation of management is the core issue of teaching, teaching management is to become an important part. With the development of the scientific management of teaching, students of the lecturers for comments, a lecturer in the teachin
3、g of their own in the process of understanding, and leading lecturer on the assessment, these interactions can request an urgent need for a real response to the views of students to teacher evaluation system. The evaluation system in order to establish performance as the content, the Composite score
4、 is based on modern technology as a means on the basis of resolving the current evaluation by the management of performance can not, can not be comprehensive evaluation and measurement of the HKEAA heavy workload and difficult to operate, and other problems. In the Eclipse development environment, u
5、sing the JSP, Struts, Spring, Hibernate connected to the visit Mysql database. Achieving specific function is divided into modules Comments students, lecturers modules, project manager module, admin module, manager module. The system interface beautiful, simple, easy to use. Keywords: evaluation sys
6、tem, Eclipse, JSP, Struts, Spring, Mysql;目 录1绪论42开发环境及开发工具的介绍42.1 eclipse和myeclipse简介42.1.1 Eclipse的特点52.1.2 Eclipse的环境配置62.1.3 Eclipse体系结构62.1.4 Eclipse+My Eclipse72.2 JSP概述82.2.2 JSP的特点92.3 Struts概述102.3.1 Struct 工作原理112.3.2 Struts的特点12Struts有如下的特点:122.4Hibernate概述122.4.1 Hibernate的工作原理132.4.2 Hib
7、ernate的特点142.5 Spring概述142.5.1 Spring的工作原理162.5.2 Spring的特点173 mysql数据库编程183.1 mysql简介183.2 MySQL数据库常用命令194 Tarena讲师考评系统需求分析204.1 系统设计思想204.2系统界面要求214.3 Tarena讲师考评系统要求224.4Tarena讲师考评系统角色及其功能分析225 Tarena讲师考评系统的详细设计315.1 Tarenay讲师考评系统的数据库设计315.2 Tarena讲师考评系统模块的划分345.3 Tarena讲师考评系统主要模块的具体实现345.4 Tarena
8、讲师考评系统的测试47总结与体会52致谢53参考文献54附录一:英文资料原文55附录二:英文资料译文621绪论21世纪初期,既是我国经济快速、健康发展的重要时期,也是我国高等教育以及企业培训快速、健康发展的关键时期,高等学校与企业必须与时俱进,更新观念,创新制度,深化改革,努力提高人才培养质量,这不仅是新时期经济社会发展的客观要求,更是高等学校与企业改革与发展的必然选择。 而由此引起的一系列问题值得我们思考:怎么去管理讲师?怎么去评价讲师的工作?可以采用哪些有效的激励办法和因素?怎么建立起讲师的绩效考核办法和激励办法?这迫切需要着一个高效合理的考评系统。于是依据对达内培训公司的了解,我们选择了
9、Tarena讲师考评系统作为毕业设计课题。通过考评系统的实现,可以真实的反应各学生对讲师的要求和意见,也能让讲师清晰的了解自己在教学过程中存在的一些问题和同学对自己的真实感受。考评系统给学生,讲师们提供了一个互动的平台,对教学工作有着很强的促进作用。2开发环境及开发工具的介绍2.1 eclipse和myeclipse简介1. 概述 Eclipse是个集成开发环境(Integrated Development Environment),其前身是IBM的Visual Age for Java(VA4J)。Eclipse是可扩展的体系结构,可以集成不同软件开发供应商开发的产品,将他们开发的工具和组件
10、加入到Eclipse平台中。 随着Java应用的广泛,各大主要软件供应商都参与到Eclipse架构开发中,使得Eclipse插件数量与日增加。其中,IBM的WebSphere Studio Workbench是突出的例子。Eclipse平台的免费,架构的成熟,行业协会Eclipse基金会的支持,使得很多的Java开发采用了Eclipse架构。其他的Java集成开发环境有Jbuilder、WebSpher Studio、 NetBeans。然而Eclipse以其强大的可扩展性和开放性脱颖而出,拥有为数众多的支持者,它的免费也被许多中小型企业所青睐。2.Eclipse和Myeclipse的结合My
11、eclipse是一个商业的j2ee开发插件,建立在eclipse的基础上,支持html,css,js,jsp,servlet,java,j2ee,ejb,web services等等,它的功能非常之强大,和eclipse结合十分完美。在myeclipse里面还可以建立与数据库的连接和查询操作,而且还自带了web浏览器,比如你在编写一些基本servlet时,不用打开IE新窗口了,直接在eclipse里用web浏览器就可以看到。Eclipse是一个集成的进行JAVA开发的IDE开发环境,并且是开源的,MyEclipse是一种插件,为J2EE开发提供一种高级编程环境,可以轻松的完成struts,Hi
12、bernate,Spring布局,编写strtus-config.xml。Eclipse 是一个IDE(Integrated Developing Environment),而这个IDE是允许安装第三方开发的插件来使自身的功能得到扩展和增强的,而Myeclipse就是其中的一种有名的插件集之一,MyEclipse将开发者常用到的一些有用的插件都集合起来,但它是收费的。MyEclipse的实际价值来自包含的发布包中的大量的工具。还包含编辑Hibernate配置文件和执行SQL语句的工具。2.1.1 Eclipse的特点lEclipse是开放源代码的软件。这意味着Eclipse不仅可以免费使用,还
13、可以通过研究源代码学习世界上顶尖开发人员的编程技术,并可以共享遍布全球的开发人员所贡献的公共开放源代码库。2 Eclipse是真正可扩展并可配置的。Eclipse采用插件机制,犹如一个花瓶,你可以随时向花瓶里面插花,也可以很容易将不再需要的花取出。目前,互联网上免费的、收费的插件遍地开花,插件开发工作在国内外也如火如荼。3 Eclipse支持众多的开发语言而不仅仅是Java。Eclipse只是给开发人员提供了一个能够扩展系统功能的最小核心,基于扩展点的插件体系结构使得Eclipse支持多种语言成为可能。只要安装相应语言的插件,Eclipse就可以支持该种语言的开发。目前,Eclipse已经可以
14、支持C、COBOL、PHP、Perl、Python等多种语言。4 Eclipse提供了对多重平台特性的支持。开发者可以使用他们感觉最舒适、最熟悉的平台,例如Windows、Linux、MacOS等。Eclipse对每个平台都有其单独的图形工具包,这使得应用程序具有接近本地操作系统的外观和更好的性能。5 基于业界领先的OSGi规范。OSGi规范最早由Sun Microsystems、IBM、爱立信等于1999年推出,其服务平台包括:服务网关、汽车、移动电话、工业自动化、建筑物自动化、PDA网格计算、娱乐(如iPronto)和 IDE等。基于OSGi的系统以微内核形式运行,因而能够轻松实现软件业界
15、梦寐以求的可热插拔、动态改变行为、稳定高效的系统。Eclipse从3.1开始,毅然抛弃了其原有的已经获得业界认可的框架,采用OSGi作为其架构。从Eclipse3.2版本开始,Eclipse提供了基于OSGi开发的支持,开发者可以利用其开发基于OSGi的系统了。6 Eclipse美轮美奂的人机界面受到广泛赞誉。Eclipse提供了全新的SWT/JFace API(而不是AWT/Swing),一改SWT/Swing单调、沉闷的界面风格,使得开发基于本地的具有丰富图形界面的应用程序成为可能,犹如一股春风吹进Java的桌面开发领域,给人耳目一新的感觉。7 Eclipse由业界领先者推出,具有强大的行
16、业力量。Eclipse基金会吸收了大量学术研究机构、商业组织,领导Eclipse的长远规划和发展,并确保Eclipse处于软件工具行业的领先地位。2.1.2 Eclipse的环境配置(1)先装j2sdk-1_4_2_06-windows-i586-p.exe配置好(2)在装jakarta-tomcat-5.0.28.exe(3)在装MyEclipse:EnterpriseWorkbenchInstaller_4.0GA_E3.1.exe2.1.3 Eclipse体系结构Eclipse平台体系结构主要由5部分组成,分别是平台运行库、工作区、工作台、团队支持和帮助。图1-1为Eclipse体系结构
17、图。在运行时内核是整个架构的核心,其他部件都是以插件方式来实现的。Eclipse采用动态加载机制,即只有需要的才加载,这样可以降低启动时间,提高资源使用效率。 工作空间插件即所谓的工作区,主要负责管理用户资源,例如用户创建项目的管理、文件变更等,并负责通知其他插件关于资源变更的信息。 工作台插件是Eclipse 提供的用户界面。它使用标准窗口工具包(SWT)和一个更高级的API(JFace)构建的。SWT是Java的Swing/AWT的非标准替代者,JFace则以SWT为基础,但更易于使用。 团队支持插件负责提供版本控制和配置管理支持。它允许用户根据需要添加视图,并与允许用户使用的任何版本控制
18、系统交互。 帮助插件允许以HTML文件形式添加文档,并提供了一个附加的导航结构以便用户使用帮助功能搜索相关信息。2.1.4 Eclipse+My Eclipse简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。Genuitec发布了MyEclipse Enterprise Workbench 5.0,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EE IDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/Strutsd
19、esigner、可视化的Hibernate/ORM工具、Spring和Web services支持,以及新的Oracle数据库开发,MyEclipse 5.0继续为业界提供全面的产品。 2.2 JSP概述如果说servlet是含有HTML的java代码,那么JSP就是含有JAVA代码的HTML。尽管JSP页面和servlet之间存在巨大而明显的差异,但实际上它们是一回事。JSP页面最终要转换成servlet,并进行编译,在请求期间执行的实际上是编译后的servlet。因而,编写JSP页面实际上不过是另一种编写servlet的方式。但是它们并非在所有的情况下都同样适用。将静态HTML从动态内容中
20、分离开来比单独使用Servlet有很多好处,同时,JSP页面中使用的模式与竞争技术相比有好几项优点。在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个Servlet。而这个引擎本身也是一个Servlet。JSP的运行过程如下所示:(1)JSP引擎先把该JSP文件转换成一个Java源文件(Servlet),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。(2)如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。(3)创建一个该Servlet(JSP页面的转换结果)的实例,该Servlet的jspInit()
21、方法被执行,jspInit()方法在Servlet的生命周期中只被执行一次。(4)jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但不过也应该注意多线程的编程限制,由于该Servlet始终驻于内存,所以响应是非常快的。(5)如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。(
22、6)虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延 迟。此外,在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将Servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用。(7)然后Servlet实例便被标记加入“垃圾收集”处理。可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。2.2.1 JSP和Servlet 的比较:1) JSP以文本为主,主要用于画界面2) JSP可以人工扩充,而servlet是固定的 3) JSP内核
23、是servlet,所以也是基于HTTP协议的请求响应循环4) 由HTML(Css、xml)、java code、JSP标签组成5) JSP有自定义标签(ASP没有)6) CGI和Servlet以代码为主,代码中嵌文本 ;JSP中文本中嵌代码7) JSP擅长于表现,而短于逻辑;而Servlet一般用作Contorler和diapatch(控制和流转);所以在JSP中写界面元素,而逻辑方面由Servlet完成。 8) JSP不需要写java文件、不需要编译和配置,它被封装到了容器内部9) JSP代码不可重用JSP的运行过程: (1)翻译(转换)阶段:*.jsp *.java(2)编译阶段:*.ja
24、va *.class(3)运行阶段:运行编译后生成的*.class文件。以上三个阶段均由JSP引擎来执行;JSP引擎由Web服务器所提供,它实际上就是一个Servlet(该Servlet在conf/web.xml中配置)2.2.2 JSP的特点1简便性和有效性 JSP动态网页的编写与一般的静态HTML的网页编写是十分相似的。只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序(此项不是必需的)。这样,一个熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。而且开发人员完全可以不自己编写脚本程序,而只是通过JSP独有的标签使用别人已写好的部件来实现动态网页的编写。这样,
25、一个不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。而这在其他的动态网页开发中是不可实现的。2程序的独立性JSP是Java API家族的一部分,它拥有一般的Java程序的跨平台的特性。换句话说,就是拥有程序的对平台的独立性,即Write once,Run anywhere!。3程序的兼容性 JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务,即从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(例如,移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。4程序的可重用性 在JSP页面中可以不直接将脚本程序嵌入
26、,而只是将动态的交互部分作为一个部件加以引用。这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。现在,大量的标准JavaBeans程序库就是一个很好的例证。2.3 Struts概述Struts 使用 Model 2 架构。Struts 的ActionServlet 控制导航流。其他Struts 类,比如Action,用来访问业务逻辑类。当 ActionServlet 从容器接收到一个请求,它使用URI (或者路径“path”)来决定那个Action 将用来处理请求。一个 Action 可以校验输入,并且访问业务层以从数据库或其他数据服务中检索信息。为校验输入或者使用
27、输入来更新数据库, Action 需要知道什么值被提交上来。它并不是强制每个Action 都要从请求中抓取这些值,而是由 ActionServlet 将输入绑定到JavaBean 中。输入 bean 是Struts ActionForm 类的子类。ActionServlet 通过查找请求的路径可以决定使用哪个ActionForm , Action 也是通过同样的方法选取的。ActionForm 扩展了org.apache.struts.action.ActionForm 类。每个请求都必须以HTTP 响应进行应答。 通常,Struts Action 并不自行渲染响应信息,而是将请求转发到其他资
28、源,比如JSP 页面。Struts 提供一个ActionForward 类,用来将一个页面的路径保存为逻辑名称。当完成业务逻辑后, Action 选择并向Servlet 返回一个ActionForward。Servlet 然后使用保存在ActionForward 对象中的路径来调用页成响应。Struts 将这些细节都绑定在一个ActionMapping 对象中。每个ActionMapping 相对于一个特定的路径。当某个路径被请求时,Servlet 就查询ActionMapping 对象ActionMapping 对象告诉servlet,哪些个Action,ActionForm,和 Actio
29、nForwar要被本次请求使用。 Struts由一组相互协作的类、Serlvet以及丰富的标记库(jsp tag lib)和独立于该框架工作的实用程序类(Validator)组成。 Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在视图层,Struts能够与JSP, Velocity Templates,XSL等等这些表示层组件想结合。(1) 从视图角度(View) 主要由JSP建立,strut
30、s自身包含了一组可扩展的自定义标签库(TagLib),可以简化创建用户界面的过程。目前包括:Bean Tags,HTML Tags,Logic Tags,Nested Tags,Template Tags这几个Taglib。有关它们的详细资料请参考struts用户手册(2) 从模型角度(Model) 模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也也划分到模型中)。在Struts中,系统的状态主要有ActiomForm Bean体现,一般情况下,这些状态是非持久性的。如果需要将这些状态转化为持久性数据存储,Struts本身也提供了Utitle包,可以方便的与数据库操作(3)从
31、控制器角度(Controller) 在Struts framework中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,Action扮演了真正的业务逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。 出的事件,并重绘视图。2.3.1 Struct 工作原理一个请求在Struts2框架中的处理大概分为以下几个步骤1 客户端初始化一个指向Servlet容器(例
32、如Tomcat)的请求2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy5 ActionProxy通过Configuration Manager询问框架的
33、配置文件,找到需要调用的Action类6 ActionProxy创建一个ActionInvocation的实例。7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper 在上述过程
34、中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。2.3.2 Struts的特点Struts有如下的特点:(1) 优点:Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。关于页面导
35、航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。(2) 缺点:Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是当你习惯了它时,你会觉得它真的很棒;Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度;它对类和一些属性、参数的命名显得有些随意,给使用带来一些不便. 2.4Hibernate概述Hibernate是用于简化数据库操作的第三方开源工具.它实现ORM(Ob
36、ject-Relational Mapping,对象关系映射),在具体的操作业务对象时,就不需要和复杂的SQL语句打交道,只要像平时操作对象一样.不使用hibernate的话,那么就会出现很多重复的代码,hibernate 5个核心接口的类关系图:2.4.1 Hibernate的工作原理Hibernate技术本质上是一个提供数据库服务的中间件。它的架构如图1所示:图1图1显示了hibernate的工作原理,它是利用数据库以及其他一些配置文件如perties,XML Mapping等来为应用程序提供数据持久化服务的。Hibernate具有很大的灵活性,但同时它的体系结构
37、比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供JDBC连接,并且自行管理事务,这种方式使用了Hibernate的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的JDBC/JTA API都被抽象了,Hibernate会替你照管所有的细节,整个流程如下:2.4.2 Hibernate的特点一、Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码
38、。从这个意义上来说,Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系。二、Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。三、Hibernate不能用来直接和Entity Bean做对比,只有放在整个J2EE项目的框架中才能比较。并且即使是放在软件整体框架中来看,Hibernate也是做为JDBC的替代者出现的,而不是Entity Bean的替代者出现的。2.5 Spring概述Spring 是指一个用于构造Java 应用
39、程序的轻量级框架,不限定于只编写web 应用。它的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web 框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外
40、,对于现存的各种框架(Struts、JSF、Hibernate 等),Spring 也提供了与它们相整合的方案。组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、
41、EJB、电子邮件、国际化、校验和调度功能。Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量。Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。Spring Web 模块:Web 上下文模块建立在应用程序
42、上下文模块之上,为基于 Web 的应用程序提供了上下文。Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置
43、和依赖性规范与实际的应用程序代码分开。Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务。Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。Spri
44、ng ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。2.5.1
45、 Spring的工作原理Spring工作原理 Interface21公司推出的Spring开发框架(以下简称Spring)经过开放源代码社区和众多项目的应用和实际检验,历经多个版本的发展,已经成长为使用开源技术开发J2EE应用的事实标准。Spring运用“控制反转(以下缩写为IoC)”和“面向方面编程”(以下缩写为AOP)的理念,在正规的设计模式和一整套最佳实践的支持下,为普通Java对象提供了包括轻量级IoC容器、AOP支持、声明式事务、对象-关系模型映射、J2EE集成工具、Web开发框架集成工具和基本的MVC实现等7个主要方面的特性和服务。IoC的概念最早来自于2004年Martin Fo
46、wler提出的一种组件装配模式,其核心观点是将组件的配置与使用分开1。Spring的IoC容器提供这样一种功能:为那些组成应用程序的主体和其他需要由容器管理的对象(称为bean)提供实例化、定位、配置支持,并通过容器核心接口org.springframwork.beans.factory. BeanFactory的多个实现的支持,描述并建立并管理这些对象之间的依赖关系。最常见的方式是通过XML配置元数据来对容器管理的bean进行定义,通过Setter注入和构造器注入两种主要的依赖注入方式实现bean之间的依赖管理,从而实现高层次的松耦合。Spring2.0版本为元数据的XML配置方式提供基于X
47、ML Schema的“自定义标签”功能,即通过第三方命名空间将自定义bean的配置引入IoC容器的元数据配置,在应用程序开发中更好的融合Spring的IoC功能。 核心接口ScriptFactory定义创建动态语言实现bean的getScriptedObject方法,以及构造工厂实例所需的脚本资源和Java接口(Spring要求开发者编写的动态语言必须实现至少一个Java接口),其含义是任何一种可以被IoC容器支持的动态语言必须具有Java的类型特性并且以对象实例为单位被容器管理,才能获得容器提供的特性。目前ScriptFactory接口的实现只有3个,分别提供Bsh,Groovy和Ruby语
48、言的支持。 2.5.2 Spring的特点1.控制反转(IOC=Inverse Of Control),依赖注入DI(Dependence injection)。 注释:由容器控制程序之间的关系,而非传统实现中,有程序代码直接操控。控制权有应用代码中转到了外部容器,控制权的转移,是所谓反转。 注入类型:接口注入,设置注入,构造子注入。而Spring则是IOC的一个容器。 在Spring中,所谓依赖注入,即在运行期由容器将依赖关系注入到组件之中。讲的通俗点,就是在运行期,由Spring根据配置文件,将其他对象的引用通过组件的提供的setter方法进行设定。2.Spring Bean封装机制Spr
49、ing 从核心而言,是一个DI 容器,其设计哲学是提供一种无侵入式的高扩展性框架。即无需代码中涉及Spring专有类,即可将其纳入Spring容器进行管理。作为对比,EJB则是一种高度侵入性的框架规范,它制定了众多的接口和编码规范,要求实现者必须遵从。侵入性的后果就是,一旦系统基于侵入性框架设计开发,那么之后任何脱离这个框架的企图都将付出极大的代价。为了避免这种情况,实现无侵入性的目标。Spring 大量引入了Java 的Reflection机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了其核心组件BeanFactory,以此作为其依赖注入机制的实现基础。org.springf
50、ramework.beans包中包括了这些核心组件的实现类,核心中的核心为BeanWrapper和BeanFactory类。这两个类从技术角度而言并不复杂,但对于Spring 框架而言,却是关键所在。Bean Wrapper 通过BeanWrapper,我们可以无需在编码时就指定JavaBean的实现类和属性值,通过在配置文件加以设定,就可以在运行期动态创建对象并设定其属性(依赖关系)。上面的代码中,我们仅仅指定了需要设置的属性名“name”,运行期,BeanWrapper将根据JavaBean规范,动态调用对象的“setName”方法进行属性设定。属性名可包含层次,如对于属性名:1, Spr
51、ing不同于其他的Framework,它要提供的是一种管理你的业务对象的方法。 2, Spring有分层的体系结构,意味着你能选择仅仅使用它的任何一个独立的部分,而其他的仍然使用你的相关实现。 3, 它的设计从一开始就是要帮助你编写易于测试的代码,Spring是使用测试驱动开发(TDD)的工程的理想框架。 4, Spring不会给你的工程添加对其他的框架依赖;同时Spring又可以称得上是个一揽子解决方案,提供了一个典型应用所需要的大部分基础架构。 Spring的好处: 1, Spring能有效地组织你的中间层对象;(*) 2, Spring能消除在许多工程中常见的对Singleton的过多使
52、用; 3, 通过一种在不同应用程序和项目间一致的方法来处理配置文件,消除各种自定义格式的属性文件的需要,仅仅需要看看类的JavaBean属性。Inversion of Control的使用帮助完成了这种简化;(使用的是type2的IoC) 4, 能够很容易培养你面向接口而不是面向类的编程习惯。(这也算。) 5, Spring的设计会让使用它创建的应用尽可能少的依赖于它的APIs,在Spring应用中的大多数业务对象没有依赖于Spring。 6, 使用Spring构建的应用程序易于单元测试; 7, Spring使EJB成为一个实现选择,而不是必需的选择。你可以用POJOs或local EJBs来
53、实现业务接口,却不会影响到调用代码。 8, Spring提供一些web应用上的EJB的替代方案,比如用AOP提供声明性事务管理; 9, Spring为数据存取提供了一个一致的框架,不论是使用JDBC还是O/R mapping的产品(Hibernate,JDO)。 3 mysql数据库编程3.1 mysql简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。与其他的大型数据库
54、例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL不支持视图(已经被列入5.1版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。目前Internet上流行的网站构架方式是LAMP即(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因
55、此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统1.使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 3.为多种编程语言提供了API。这些编程语言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。4.支持多线程,充分利用CPU资源5.优化的SQL查询算法,有效地提高查询速度6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator和MySQL Query Browser。phpMyAdmin是由php写成的MySQL资料库系统管理程式,让管理者可用Web介面管理MySQL资料库。phpMyBackupPro也是由PHP写成的,可以透过Web介面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青田县2024年一级造价工程师《土建计量》点睛提分卷含解析
- 蓬莱市2024年一级造价工程师《土建计量》全真模拟试题含解析
- 特种气合成与分离新技术开发
- 思想道德修养与法律基础第二章
- 《无梁楼盖应用技术》课件
- 力与运动科普模板
- 土木工程专业英语 试卷及答案 共3套
- 《讲研究选题》课件
- 国学教师培训计划
- 吉林70号沥青施工方案
- 2025届湖北十一校联考高三语文考场高分作文:平替到底好不好
- 《西方经济学(本)》形考任务(1-6)试题答案解析
- 人教版八年级语文上册《人民英雄永垂不朽》教学课件
- 机电一体化项目职业技能大赛试题(SX-815Q)
- 《消防应急疏散培训》课件
- 8.3数学建模活动的主要过程课件-高一上学期数学北师大版(2019)必修第一册
- 2025年春九年级语文下册 第三单元综合测试卷(人教陕西版)
- EXCEL培训课件分享第二阶段培训
- 体育赛事管理系统整体解决方案
- DB35T 2145-2023 电化学储能系统火灾风险评价技术规程
- 脑梗死溶栓试题及答案文档
评论
0/150
提交评论