J2EE架构设计-UML软件工程组织

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

®www.uml.org.cn关系您的软件工程技术实践J2EE架构设计成湘均北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn课程安排第一部份:介绍实例架构结合实例讲解Web项目总体结构分析多层结构优点具体讲解每个层次的实现技巧北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn课程安排第二部分:介绍组织层次关联利器(Spring)快速入门Factory模式IOC模式AOP模式演练Spring的威力北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn课程安排第三部分:介绍日志管理利器(Log4j)快速入门演练Log4j的优越性北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn课程安排第四部分:介绍UI层利器(Struts)Struts介绍快速入门ActionFromAction客户端验证北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn课程安排第五部分:介绍数据持久层利器(HIbernate)快速入门介绍辅助工具表与表之间关联操作多数据库操作事务管理DAO模式与Spring结合使用北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn课程安排第六部分:介绍软件测试与部署借助Junit的单元测试借助Ant的自动部署北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn实例架构北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn层次介绍实例分为四层:通过Struts实现UI层通过Spring实现业务层通过Hibernate实现数据持久层传输于各层的域对象层北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn结构优点通过成熟的开源产品搭建层次清晰性能稳定的系统架构。层与层之间松散耦合,增加代码重用率,提高开发效率。每一层充当各自具体任务,便于团队分工和后期维护。稳健的架构能承受业务的扩展,不至于使项目失控。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnUILayerUI是UserInterface的缩写,这一层是面向用户的界面,充当与用户互动的角色。即接受用户请求作出响应。实现这一功能最佳经验即MVC模式,实例中该层借助Struts实现,Struts本身就是MVC思想的产物。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnUILayerStruts提供ActionFrom来封装与用户互动的数据元素。Struts提供Action来接受用户请求与发生响应动作。Struts提供ValidatorPlugIn来进行UI验证。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnBusinessLayer具体的业务逻辑通常导致代码的高度耦合,因此我们将业务逻辑分为单独的一层,其目的也是希望通过层,来降低它与系统其他部分的耦合度。该层借助Spring可以达到更好的效果。通过Spring的IOC模式来装配业务组件,如,DAO对象。使系统更具扩展性。通过SpringAOP(面向方面)思想,来集中处理具体业务,如事务管理,使代码更为简洁,增加复用,提高开发效率。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnPersistenceLayer在传统的系统开发中该层占据大部分的开发时间,且随着需求的变更功能的修改,逐渐变得难以控制,特别是表结构的变化可能导致整个系统大动干戈。在实例中我们借助Hibernate,利用其持久化机制和CRUD封装来减少代码开发量和其他层次的耦合度。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnDomainLayer该层应该说是ORM思想的产物,ORM用对象关联数据表,允许数据表中数据放入对象,也允许对象中数据更新到数据表,我们将这些对象的集合归为一个专门的层次即DomainLayer。域对象承担各层之间数据通信的载体。实际上域对象也是一个完完全全的业务对象,如User对象、Book对象。通过对业务的对象化,这有利于业务逻辑的重用。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cn系统结构-回顾将系统进行如上的分成,从理论上可以让其承担各自职责,UI层提供友好的用户交互、业务层处理具体问题领域逻辑、持久层完成于数据库读取存储、域模型承担数据传输的载体。将一个复杂的应用领域细分成诸多最小单元,然后进行串联、组合。使得一个应用领域的实现过程中,最小单元达到最大复用。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-简介springFramework是种非侵入式轻量级框架,允许自由选择和组装各部分功能,也提供了和其他很多软件集成的接口,如与Hibernate、Struts的集成。Spring主要功能有DependencyInjection、SpringContext、SpringAOP、SpringORM、SpringDAO、SpringMVC。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-为什么使用Spring利用延时注入思想组装代码,提高系统扩展性,灵活性,实现插件式编程。利用AOP思想,集中处理业务逻辑,减少重复代码,构建优雅的解决方案。利用HibernateTransactionManager类封装Hibernate事务管理,其是AOP思想的典型运用,使持久层操作代码简洁精悍。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-搭建Web应用环境下载springFramework最新版本,将其下的*.jar拷贝到项目lib中,并引用。在Web.xml中配置spring的启动方式:Listener方式或Servlet方式。设置Spring配置文件。通常在系统运行前完Spring成初始化工作,因此在Web.xml中配置一个初始化Servlet。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-搭建Web应用环境北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-搭建Web应用环境北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-搭建Web应用环境北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-Factory模式在实际开发中会经常用到工厂模式,其完成的功能是使外部调用类不需关心具体实现类,这样非常适合在同一个事物类型具有多种不同实现的情况下使用。要实现工厂模式我们必须设计AbstractFactory类AbstractProduct类,为了实现灵活性还可能用反射机制构建Product实体。在得到具体实现类的时候也必须通过工厂类完成,如图所示:北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-Factory模式北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-依赖注入Spring的依赖注入能达到工厂模式的同样的效果,但其实现却优雅很多。看如下代码:在Spring配置文件中配置Bean实现代码:Producta=XXX.getBean(“Product);这样即得到了ProductA的实例,代码中只硬编码了Product接口。是不是让你兴奋了?北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-依赖注入Spring还允许以下三种方式实现依赖注入:设值注入接口注入构造函数注入北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-依赖注入我们重点讲述设值注入方式,先来看看通过设值注入能给实际开发带来什么好处.下图是不是让你有所领悟?北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-演练我们利用设值注入实现一个简单的计算器,让它实现两个数的加法或减法运算。类图如下:Product实现类中与具体实现类无关联、无依赖,通过外部配置即可自由切换实现类,美妙!北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-演练假设我们要实现两个数相加,则配置如下(如果需要实现两个数相减,则将注释的algorithmBean替换掉当前的即可):北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-演练测试代码如下,根据具体的实现类不同将得到两个数相应运算的结果。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-依赖注入总结从演练的例子可以看出Spring提供的依赖注入思想能让代码之间依赖性降低,转而交给配置文件进行外部配置,这样对于需求变化、后期维护、功能扩展带来便利。Spring是一种工具,更是一种思想,开发人员可以在设计代码时发挥无限想象,挖掘出最适应项目代码组织形式。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-AOP模式AOP的全称为AspectOrientedProgramming,译为“面向方面编程”或“面向切面编程”,与熟悉的OOP(面向对象编程)思想所关注的目标有本质上的区别,AOP是针对具体业务领域、业务逻辑;OOP针对业务对象。Spring中事务管理机制就是AOP的一个具体运用。利用此机制省去了我们在每个具体实现类中去进行事务管理的编码,而将这一切交给Spring提供的事务代理实现类org.springframework.transaction.interceptor.TransactionProxyFactoryBean。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-AOP模式在讲述AOP运用之前我们先来了解下AOP实现原理。Spring的DependencyInjection和AOP都是某一设计模式的经典应用及放大。也许通过Spring的事物管理机制你已经将AOP的实现原理与代理模式联系在一起了。的确如此,让我们先看看代理模式的思想。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-Proxy代理模式的思想是:不让外部直接访问具体目标,而是通过一个代理类才能访问具体目标。类似在具体目标与外部之间放置一道“隔离层“,所有与具体目标的通信均需通过这道”隔离层”来传送请求和返回状态。这样“隔离层“就能掌控访问具体目标的前前后后。如果我们需要在访问具体目标前或后加上一致的处理逻辑,无疑代理模式最为适合。就如事物管理。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-Proxy下面演练用Proxy模式来实现JDBC事务管理,先看类图:先编写Dao接口,让所有访问数据库的类和代理类都继承该接口,然后在代理类中传入要访问的具体类。这样就能通过代理类完成对具体实例的访问。北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-Proxy北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-Proxy北京火龙果软件工程技术中心|UML软件工程组织www.uml.org.cnSpring-Proxy从DaoImpl类中代码可以看出我们没有编写事务的控制代码,而是转交给代理类完成,这样访问数据库的具体类不需要自己关心事务处理。让某一业务逻辑集中实现,能避免重复编写代码,方便修改和维护。上面的例子有两个缺陷1.

1 / 112
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功