1、苏州大学本科生毕业设计(论文)目 录目 录1摘 要1前 言3第一章 绪论41。1 研究背景41。2 设计目标41.3 本文结构5第二章 系统开发环境与技术62.1 系统开发环境62。1。1 MyEclipse插件介绍62。1.2 Tomcat服务器介绍62。2 系统开发技术72。2。1 JSP与Servlet技术72.2.2 JavaScript简介102.2。3 MVC模式112。2。4 Struts框架112。2.5 Spring框架132。2。6 Hibernate框架15第三章 系统需求分析与前台设计173.1 需求分析173.1.1 系统前台简要设计概述173。1.2 系统用例图18
2、3.2 系统设计183。2.1 系统层次划分183.2.2 数据库设计193。2。3 成本管理模块时序图22第四章 系统详细设计与功能实现274.1 系统项目的文件夹结构274。2 成本管理模块的具体实现284。2。1 查询成本信息列表功能的实现284。2。2 添加成本信息功能的实现334.2.3 修改成本信息功能的实现364。2.4 删除成本信息功能的实现394.2。5 查看成本明细信息功能的实现41第五章 总结与展望435。1 课题总结435。2 进一步开发的展望43参考文献44致 谢45II摘 要 服饰企业生产状况联络表是针对企业的实际情况而进行设计、开发的,而成本管理模块则是为了保持产
3、品的成本信息及时的保存、更新。利用JSP技术和SSH框架以及相应的数据库访问技术实现了基于Web的系统。该框架可以减少模块之间的耦合性,让开发人员减轻重新建立解决复杂问题方案的负担,并且可以被扩展以进行内部的定制化。通过使用JSP技术建设动态网站,充分发挥了Java语言所独有的易用性、跨平台性和安全性,从而构建了一个运行高效、安全可靠、适用性广的管理系统,实现了企业信息资源的网上管理,满足了公司业务处理的需要,使企业适应了网络经济时代发展的要求。论文首先简要介绍了企业管理系统的一些研究与应用背景,其次介绍了该网站系统所采用的开发工具、平台以及开发环境。在此基础上,论文详尽描述了成本管理系统情况
4、。关键词:JSP,SSH框架,成本管理 作者:XX指导老师:XXAbstractApparel enterprise production situation contact sheets is designed and developed according to enterprises actual situation,and the cost management module is to keep the cost of the product information timely preservation, updated. Its the corresponding Web-bas
5、ed system used of JSP technology and Struts Spring Hibernate framework and database access technology. The framework reduces coupling between modules and allows developers to reduce the burden of reestablishing to solve the complex problems。 It can sufficiently develop the characteristic capabilitie
6、s of easily utilization, flatextent and security of the Java language by using of the technology of JSP to build the Dynamic websites, thereby constructs the management system that has the abilities of high efficiently implementation, security and dependability, extensively practicable。 Firstly,The
7、paper briefly introduces the research and application background of the enterprise management system,also introduces the platform and development environment configuration.Finally, the paper shows the main functions of the cost management module。Keywords: JSP,Struts Spring Hibernate Framework,cost m
8、anagementWritten by XXSupervised by XX前 言随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。越来越多的企业也必然要借助先进的信息技术来展示自己公司的信息,产品的介绍,并借助计算机技术来提高管理效率,因此网站建设所体现的重要性越来越突出。一个企业门户网站建设、运行的好坏,直接关系到一个企业的形象,也影响着其管理、服务的质量和水平。对企业门户网站的测评能直接对其建设、运行状况做出科学的评价,并据此对其未来的发展做出科学的规划。通过对企业门户网站的不断完善来推动企业内部管理体制的改革和
9、业务流程的再造,并从根本上在企业的各个部门贯彻服务的理念.本文的结构如下:第一章是绪论部分,叙述了本系统的开发背景、开发目标、开发意义以及国内外的一些比较.第二章介绍了本系统的开发环境及开发技术.第三章是系统需求分析与前台设计,阐述了在系统开发前的分析工作、系统的整体设计以及数据库设计。第四章是系统的详细设计与功能实现。第五章总结和展望,对整个项目的过程和感悟进行总结,并对项目未来的开发做出展望。第一章 绪论1。1 研究背景当今时代信息技术飞速发展,人们已经处于数字化的生存空间之中。Internet构造了无限的信息资源,它的普遍使用已经从根本上改变了人们的生活方式和工作方式,也改变了企业的经营
10、方式和服务方式.传统的人为管理模式已经远远无法满足现在的企业,那么企业对于企业管理系统的需求是必然的。通过管理系统,能够大大提高企业的各个方面效率,同时方便了企业与职工之间的交流,便于满足将来的业务需求。网络技术的迅猛发展使得基于Web的各类信息系统成为目前信息系统中最为流行的展现形式之一。基于Web的信息系统具有如下一些特点:(1) 有利于信息的及时更新和发布;(2) 便于操作和管理;(3) 拥有良好的用户界面和接口;(4) 灵活性和可扩展性;(5) 系统功能的通用性;正是在这样的社会大背景下,我们开始进行“服饰生产企业生产状况联络表成本管理的课题研究,其目的在于通过网站的形式实现基于Web
11、的信息系统的上述优点和特点,以展现该类信息系统在全球信息网Internet网中快速、便捷、准确地发布信息,提供资源共享的强大功能和作用。成本管理可以帮助企业实现对成本更好的控制,透明的各项成本支出,长期积累下来的数据可以帮助企业对成本进行分析,以达到节约成本的目的。系统中的成本信息与负责人相关联,以达到可追溯的目的,使得企业对于成本管理做到可监控。1。2 设计目标开发设计本系统的任务是管理该公司的成本信息,通过该系统能够让用户对成本信息查询、新增、修改和删除.开发系统的目标是对成本信息及其明细信息进行管理,满足的要求具体可包括如下几个方面:(1) 网页风格符合企业员工的特点,简单实用。(2)
12、能够实现对于成本信息的符合实际企业需求的管理。(3) 网站运行安全稳定。1。3 本文结构本文的章节安排如下:第一章绪论部分,说明本文的研究背景和设计目标.为接下来的系统后台的分析与设计做基础准备.第二章背景技术,简单介绍系统实现所用到的平台与技术。如MyEclipse、Tomcat服务器、JSP与Servlet原理、JavaScript、SSH(StrutsSpringHibernate)框架等。第三章系统分析与设计,对企业的门户网站的后台进行需求分析,根据需求分析设计相应的功能与表结构.第四章系统实现,给出系统后台的具体实现,包括实现效果和核心代码说明。第五章总结与展望,对本文所做的工作进行
13、总结,并针对目前工作中的不足对未来工作的展望。第二章 系统开发环境与技术2.1 系统开发环境企业订单管理系统以Eclipse为开发平台,使用MyEclipse作为Eclipse的插件,并由Tomcat 6。0充当Web服务器来开发实现的.2.1.1 MyEclipse插件介绍MyEclipse是一个商业软件(商业插件)、基于Java和Eclipse的可扩展开发平台(比如MS Visual Studio开发平台中的VC、VB等。Borland公司的Delphi、Borland、C+、Builder)。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。虽然大多数用户很乐于将My
14、Eclipse当做Java IDE(Integrated Development Environment)来使用,但MyEclipse的目标并不仅限于此.MyEclipse还包括插件开发环境(Plug-in Development Environment-PDE),当然,这个功能的实现主要是Eclipse,这个组件主要针对希望扩展Eclipse核心的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于J
15、ava开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言.例如:支持诸如C/C+、COBOL和Eiffel及Perl等编程语言的插件。MyEclipse是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试及除错.程序功能包括:HTML智能编辑器、Struts、JSF、CSS、JavaScript、SQL、Hibernate、Spring等,带有自动完成与语法高亮显示功能的J2EE编辑器。在Eclipse中安装这个插件可以大大提高开发J2EE的效率。2。1。2 Tomcat服务器介绍Tomcat是一个免费开源的Servlet容器,它是Apache 软件
16、基金会(Apache Software Foundation)Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 7 支持最新的Servlet 3.0 和JSP 2。2 规范。Tomcat不仅是一个Servlet容器,它也具有传统的Web服务器的功能,如处理HTML页面,简单的域名管理,配置JNDI等.因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用
17、服务器。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行Tomcat 时,它实际上作为一个与Apache 独
18、立的进程单独运行的.这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和 JSP容器,独立的Servlet容器是Tomcat的默认模式.不过,Tomcat处理静态HTML的能力不如Apache服务器.2。2 系统开发技术服饰企业生产状况联络表系统的开发技术是基于J2EE架构的SSH组合技术。开发平台是Eclipse,以MyEclipse作为插件,Tomcat 6。0作为服务器,JDK1。6。0_13作为工具包。2
19、。2。1 JSP与Servlet技术JSP技术是建立在Servlet技术之上的.先有Servlet技术,后推出的JSP技术。JSP最终要编译为Servlet运行。进行Web应用开发的时候,结合Servlet和JSP能够使开发的分工和层次更加清晰。JSP注重于页面的呈现,处理逻辑应该尽量减少,这样方便网页设计人员在美工上多下功夫:Servlet程序则侧重于对逻辑的控制,根据需要对JSP页面进行导航.Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。Servlet位于Web服务器内部,由Web服务器进行加载,该Web服务器必须包含支持Servlet的Jav
20、a虚拟机.JSP(Java Server Pages)是一种动态网页技术标准,是基于Java Servlet和整个Java体系的Web开发技术。它在动态网页的建设中有着强大而特别的功能,它的以下优点使很多人认为它将是最有发展前途的动态网页技术3.(1) 将内容的生成和显示进行分离用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容。Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。(2) 采用标识Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的
21、、与JSP相关的XML标识中进行动态内容生成所需要的。JSP的执行流程是这样的:第一个用户请求JSP文件的时候,JSP容器(如Tomcat)把JSP文件转换成Java文件(Servlet类文件),然后编译成class文件,常驻内存;当有客户请求的时候,直接开一个线程,无须重新编译,直接执行第一次已经编译好的class文件,速度比每次都要重新编译JSP文件要快的多。2.2。1.1 JSP的工作原理JSP页面以扩展名为JSP的纯文本文件的形式存在服务器上,当服务器接收到客户端对某个JSP页面的请求时,如果这是对该页面创建或修改后的第一次请求时,那么JSP引擎就把该JSP页面内容转换成一个纯Java
22、语言的Servlet源码,然后将其编译成Servlet字节代码,最后将Servlet的执行结果返回至浏览器.JSP页面被编译成Servlet之后,其执行代码以独立线程的形式一直存在服务器的内存中,以后对该JSP页面提出请求时,不需要重新编译,直到该页面被修改或WEB应用程序重新启动。其工作原理如图22所示。图22 JSP的工作原理2。2。1。2 JSP技术语法(1) 常用JSP命令:1)page-页面指令,主要用来指定当前JSP页面的属性。2)jsp:include-允许包含其他动态和静态文件。3)jsp:forward-将一个JSP文件传给另一个JSP文件.4)jsp:plugin-可以通过
23、Java插件在浏览器中运行Java Applet 。5)jsp:useBean-标记是用来访问JavaBean的动作标记.当JSP页面使用标记时,表示将引用一个JavaBean的实例。JavaBean标记的语法格式如下:.(2) JSP内置对象6:为了方便Web页面的开发,JSP提供了一些内置的对象。这些内置对象可以不经显式声明而在程序中直接使用,JSP的几个主要内置对象有Request、Response、Session、Out。通过这些内置对象,可以实现页面的一些基本的请求输入、输出功能,且可实现数据在页面之间的交互.本系统主要用到的有以下几个对象4:1)Request对象:主要功能是接受客
24、户端以HTTP方式传送的数据,使服务器端的应用程序可以根据这些数据做进一步的信息处理,实现与客户进行交互的功能.一般常用的是它的getParameter(String name)这个方法来获取传递的参数。其接口为javax。servlet.http.HttpServletRequest。2)Response对象:主要功能是用来对客户的请求做出响应,与Request对象对应的就是Response对象。Response对象用于将服务器的数据发送到客户端,输出的数据可以是各种数据类型,甚至是文件。一般经常用到的是它的sendRedirect(URL url)这个方法来重定向当前用户访问的url.Re
25、sponse对象的接口为javax.servlet。http.HttpServletResponse.3)Session对象:主要功能用来保存每个用户在会话期间的数据信息,这样就方便了会话处理工作。当用户登录网站时,系统将为其生成一个独一无二的session对象,用以记录该用户的个人信息,一旦该用户退出网站,那么这个session对象将会注销。Session对象可以绑定若干个人信息或Java对象。Session对象的接口为javax.servlet.http。HttpServletSession。4)Out对象:主要功能是用于动态地向客户端输出数据信息,其主要作用是在Web浏览器内输出信息。这
26、个对象使用比较频繁,在数据的输出方面经常用到它的println(parameter)这个方法.同时,它也是进行纠错处理时一个比较有效的输出方法.2.2。2 JavaScript简介JavaScript是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。JavaScript是由Netscape公司开发的一种脚本语言(scripting language),或者称为描述语言。在HTML基础上,使用JavaScript可以开发交互式Web网页。JavaScript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素
27、和更加精彩的内容。JavaScript短小精悍,又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。同时它又是专门为制作Web网页而量身定做的一种简单的编程语言.JavaScript加入网页有两种办法7:1.直接加入HTML文档这是最常用的方法,大部分含有JavaScript的网页都采用这种方法,如:script language=Javascriptscript language=”Javascript”用来告诉浏览器这是用JavaScript编写的程序,需要调动相应的解释程序进行解释。HTML的注释标签!-和-:用来去掉浏览器所不能识别的JavaScript源代码的,这对不支持Jav
28、ascript语言的浏览器来说是很有用的。/-Javascript结束:双斜杠表示JavaScript的注释部分,即从/开始到行尾的字符都被忽略./script的位置并不是固定的,可以包含在head/head 或中的任何地方.2.引用方式:如果已经存在一个JavaScript源文件(以js为扩展名),则可以采用这种引用的方式,以提高程序代码的利用率。其基本格式如下:script srcurl language=”Javascript 其中的url就是程序文件的地址。同样的,这样的语句可以放在HTML文档头部或主体的任何部分。如果要实现“直接插入方式中所举例子的效果,可以首先创建一个JavaSc
29、ript源代码文件“Script.js”,其内容如下:document。writeln(这是Javascript!采用直接插入的方法!”)。在网页中可以这样调用程序:/script2。2。3 MVC模式MVC即Model-ViewController,M代表业务逻辑,V代表视图,C代表控制层。通过使用MVC模式就把软件层次分为三个层:模型层、视图层、控制层1。模型(Model)层:也就是软件业务的实现部分。一个软件有什么功能,它如何实现功能,这些功能之间的联系都是在模型层进行处理的.可以这样说,模型层是一个软件的核心,软件功能的好坏、软件功能是否完善,业务层起到了决定性的作用.视图(View)
30、层:就是用户能看到的并与之交互的界面.在J2EE技术中,常用的表示层技术主要由JSP、JSF、Freemarker等组成。视图向用户显示相关的数据,并能接受用户的输入数据,但是它不能进行任何实际的业务处理。视图还可以接受模型发出来的数据更新事件,从而对用户界面进行同步更新。控制(Controller)层:Struts中的控制层和Servlet的功能功能一模一样,就是调用业务层,然后进行视图的切换。控制层几乎不做任何与业务有关的事情,比如登录验证这些。所以在软件的分层结构设计中,控制层的代码量几乎是最少的,但它的作用也是非常重要的.通过将模型、视图与控制层的分离,各个层之间的联系非常少,但这样做
31、的好处是,控制层可以随意的切换到自己想要展示的页面,然后控制层调用业务逻辑层和持久化保存数据层,来实现软件的功能,再转回到控制层,最后将最终的结果显示到视图层,这实际上是一种模型的变化传播机制。模型、视图、控制层三者之间的关系和各自的主要功能如图21所示。模 型封装应用程序状态响应状态查询应用程序功能通知视图改变图2- Error! Bookmark not defined. MVC组件关系和功能2.2.4 Struts框架Struts已经提供了一个非常好的MVC框架,利用Struts开发MVC系统时可以大大加快开发速度。在开发时可以采用的开发流程如下。(1) 收集和定义应用需求。(2) 基于
32、数据采集和显示的原则定义和开发用户界面的需求。(3) 为每一个用户界面JSP文件定义访问路径.(4) 定义ActionMapping建立应用业务逻辑之间的联系。(5) 开发满足用户界面需求的所有支持对象。(6) 基于每一个用户界面需求提供的数据属性来创建对应的ActionForm对象。(7) 开发被ActionMapping调用的Action对象。(8) 开发应用业务逻辑对象(Bean、EJB等).(9) 对应ActionMapping设计的流程创建JSP页面。(10) 建立合适的配置文件strutsconfig.xml、web。xml。(11) 开发/测试/部署。利用Sruts开发MVC流程
33、,如图2-2所示。图2 1 Struts框架MVC流程图在使用Struts框架时,对应各个部分的具体开发工作主要包括一下部分.Model部分:采用JavaBean或EJB组件或Spring的Bean,设计和实现系统的业务逻辑。根据不同的请求从Action派生具体Action处理对象。完成“做什么”的任务来调用由Bean构成的业务组件。创建由ActionForm的派生类实现对客户端表单数据的封装及简单的校验。Controller部分:Struts为我们提供了核心控制部分的实现。只需要配置ActionMapping对象即可完成URI地址的映射及匹配用户界面表单和ActionForm类的对应关系。V
34、iew部分:为了使用Model中的ActionForm对象,必须用Struts提供的自定义标记创建HTML表单。利用Struts提供的自定义标记库编写用户界面,把应用逻辑和显示逻辑分离.Struts框架通过这些自定义标记建立了View和Model之间的联系。Struts的自定义标记还提供了很多定制页面的功能.同时,需要编辑两个配置文件:web。xml和strutsconfig。xml。通过它们配置Struts系统中的各个模块之间的交互。图2-2描述了一个Struts应用程序的简要执行流程。(1) 客户端浏览器发出请求。(2) 服务器端的Struts中心类ActionServlet找到strut
35、sconfig.xml文件,并放入到内存,将文件中的内容作为请求路径映射.(3) ActionServlet类在strutsconfig。xml文件中找到相关的请求路径映射后填充ActionForm类,将前台传进来的表单域打包成Bean。(4) 然后转到Action类进行业务逻辑功能的实现,比如增、删、改、查数据库中的数据。(5) 再通过strutsconfig。xml文件的映射,找到功能逻辑处理结束后显示给客户端用户看到的页面,转发功能通过ActionForward对象实现。由图22“Struts框架MVC流程图”结构来看,Struts框架可以将软件的功能进行分层化,这样可以将精通不同技术的
36、人员工作模块化、分工化.比如精通UI用户界面设计的可以只管View视图层,而精通Java程序设计的程序员可以开发Model层的代码。2。2.5 Spring框架Spring框架是一个开放源代码的轻量级Java框架。主要作用是为了解决企业应用程序维护的复杂性而创建的。Spring框架的解决办法就是用分层架构,分层架构允许程序员选择使用哪一个组件,同时为J2EE应用程序开发提供集成的容器。Spring框架就是实现了AOP功能的IOC容器.在IOC容器的基础上加入AOP不仅可以做到松耦合开发,还具有面向切面编程的功能.Spring2.0七大模块的架构,如图2-3所示。图2- 1 Spring架构组成
37、 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: Spring Core:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring Context:Spring Context是一个配置文件,向 Spring 框架提供上下文信息。Spring Context包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能. Spring AOP:通过配置
38、管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。 Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JD
39、BC 的异常遵从通用的 DAO 异常层次结构。 Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 Spring Web MVC:MVC 框架是一个全功
40、能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境 (Web 或 EJB)、独立应用程序、测试环境之间重用.控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件
41、中描述哪一个组件需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。在典型的 IOC 场景中,容器创建了所有对象,并设置必要的属性将它们连接在一起,决定什么时间调用方法.下表列出了 IOC 的一个实现模式.类型 1服务需要实现专门的接口,通过接口,由对象提供这些服务,可以从对象查询依赖性(例如,需要的附加服务)类型 2通过 JavaBean 的属性(例如 setter 方法)分配依赖性类型 3依赖性以构造函数的形式提供,不以 JavaBean 属性的形式公开Spring 框架的 IOC 容器采用类型 2 和类型3 实现。面向方面的编程,即 AOP,是一种编
42、程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。当然,优势就是 Java 类不需要知道日志服务的存在,也不需要考虑相关的代码。所以,用 Spring AOP 编写的应用程序代码是松散耦合的。AOP 的功能
43、完全集成到了 Spring 事务管理、日志和其他各种特性的上下文中。Spring 设计的核心是 org.springframework.beans 包,它的设计目标是与 JavaBean 组件一起使用。这个包通常不是由用户直接使用,而是由服务器将其用作其他多数功能的底层中介。下一个最高级抽象是 BeanFactory 接口,它是工厂设计模式的实现,允许通过名称创建和检索对象。BeanFactory 也可以管理对象之间的关系.BeanFactory 支持两个对象模型。(1) 单态 模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索。Singleton 是默认的也是最常用的对象模型。
44、对于无状态服务对象很理想。(2) 原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。 bean 工厂的概念是 Spring 作为 IOC 容器的基础。IOC 将处理事情的责任从应用程序代码转移到框架.正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。2.2.6 Hibernate框架Hibernate是目前最流行的ORM框架,其采用非常优雅的方式将SQL操作完全包装成对象化的操作。其作者Gavin King在持久层设计上极富经验,采用非常少的代码实现了整个框架,同时完全开放源代码,即使偶尔遇
45、到无法理解的情况,也可以参照源代码来理解其在持久层上灵巧而智能的设计.目前Hibernate在国内的开发人员相当多,Hibernate的文档也非常丰富,这些都为学习Hibernate铺平了道路,因而Hibernate的学习相对简单一些.下面通过对比来了解Hibernate和传统JDBC操作数据库持久层之间的差异.当前的软件开发语言已经全面转向面向对象,而数据库系统仍停留在关系数据库阶段.面对复杂的企业环境,同时使用面向对象语言和关系数据库是相当麻烦的,不但中间的过度难以理解,而且其开发周期也相当长。Hibernate是一个面向Java环境的对象/关系数据库映射工具(Object/Relatio
46、nal Mapping),用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。Hibernate的目标是:释放开发者通常的数据持久化相关的变成任务的95。对于以数据为中心的程序而言,往往在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案。但对于那些基于Java的中间件应用中,设计采用面向对象的业务模型和商业逻辑时,Hibernate是最有用的。不管怎样,Hibernate能消除那些针对特定数据库厂商的SQL代码,并且把结果集由表格式的形式转换成值对象的形式。Hibernate不仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射)
47、,还提供数据查询和获取数据的方法,可以大幅度地减少在开发时人工使用SQL和JDBC处理数据的时间。Hibernate能在众多的ORM框架中脱颖而出,因为Hibernate与其他ORM框架对比具有如下优势。(1) 开源和免费的License,方便需要是研究源代码、改写源代码并进行功能定制。(2) 轻量级封装,避免引入过多复杂的问题,调试容易,减轻程序员负担。(3) 具有可扩展性,API开放。功能不够用时,可以自己编码进行扩展。(4) 开发者活跃,产品有稳定的发展保障。第三章 系统需求分析与前台设计3。1 需求分析根据软件开发过程的要求,在技术实现可行性确定的基础上,我们首先要进行的是系统流程的分析。需求分析就是描述系统