J2EE架构设计UML软件工程组织.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《J2EE架构设计UML软件工程组织.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2EE 架构 设计 UML 软件工程 组织
- 资源描述:
-
1、J2EE架构设计UML软件工程组织课程安排第一部份:介绍实例架构 结合实例讲解Web项目总体结构 分析多层结构优点 具体讲解每个层次的实现技巧J2EE架构设计UML软件工程组织课程安排第二部分:介绍组织层次关联利器(Spring)快速入门 Factory模式 IOC模式 AOP模式 演练Spring的威力J2EE架构设计UML软件工程组织课程安排第三部分:介绍日志管理利器(Log4j)快速入门 演练Log4j的优越性J2EE架构设计UML软件工程组织课程安排第四部分:介绍UI层利器(Struts)Struts介绍 快速入门 ActionFrom Action 客户端验证J2EE架构设计UML软
2、件工程组织课程安排第五部分:介绍数据持久层利器(HIbernate)快速入门 介绍辅助工具 表与表之间关联操作 多数据库操作 事务管理 DAO模式 与Spring结合使用J2EE架构设计UML软件工程组织课程安排第六部分:介绍软件测试与部署 借助Junit的单元测试 借助Ant的自动部署J2EE架构设计UML软件工程组织实例架构J2EE架构设计UML软件工程组织层次介绍实例分为四层:通过Struts实现UI层 通过Spring实现业务层 通过Hibernate实现数据持久层 传输于各层的域对象层J2EE架构设计UML软件工程组织结构优点 通过成熟的开源产品搭建层次清晰性能稳定的系统架构。层与层
3、之间松散耦合,增加代码重用率,提高开发效率。每一层充当各自具体任务,便于团队分工和后期维护。稳健的架构能承受业务的扩展,不至于使项目失控。J2EE架构设计UML软件工程组织UI Layer UI是User Interface的缩写,这一层是面向用户的界面,充当与用户互动的角色。即接受用户请求作出响应。实现这一功能最佳经验即MVC模式,实例中该层借助Struts实现,Struts本身就是MVC思想的产物。J2EE架构设计UML软件工程组织UI Layer Struts提供ActionFrom来封装与用户互动的数据元素。Struts提供Action来接受用户请求与发生响应动作。Struts提供Va
4、lidatorPlugIn来进行UI验证。J2EE架构设计UML软件工程组织Business Layer具体的业务逻辑通常导致代码的高度耦合,因此我们将业务逻辑分为单独的一层,其目的也是希望通过层,来降低它与系统其他部分的耦合度。该层借助Spring可以达到更好的效果。通过Spring的IOC模式来装配业务组件,如,DAO对象。使系统更具扩展性。通过Spring AOP(面向方面)思想,来集中处理具体业务,如事务管理,使代码更为简洁,增加复用,提高开发效率。J2EE架构设计UML软件工程组织Persistence Layer 在传统的系统开发中该层占据大部分的开发时间,且随着需求的变更功能的修
5、改,逐渐变得难以控制,特别是表结构的变化可能导致整个系统大动干戈。在实例中我们借助Hibernate,利用其持久化机制和CRUD封装来减少代码开发量和其他层次的耦合度。J2EE架构设计UML软件工程组织Domain Layer该层应该说是ORM思想的产物,ORM用对象关联数据表,允许数据表中数据放入对象,也允许对象中数据更新到数据表,我们将这些对象的集合归为一个专门的层次即Domain Layer。域对象承担各层之间数据通信的载体。实际上域对象也是一个完完全全的业务对象,如User对象、Book对象。通过对业务的对象化,这有利于业务逻辑的重用。J2EE架构设计UML软件工程组织系统结构-回顾将
6、系统进行如上的分成,从理论上可以让其承担各自职责,UI层提供友好的用户交互、业务层处理具体问题领域逻辑、持久层完成于数据库读取存储、域模型承担数据传输的载体。将一个复杂的应用领域细分成诸多最小单元,然后进行串联、组合。使得一个应用领域的实现过程中,最小单元达到最大复用。J2EE架构设计UML软件工程组织Spring-简介springFramework是种非侵入式轻量级框架,允许自由选择和组装各部分功能,也提供了和其他很多软件集成的接口,如与Hibernate、Struts的集成。Spring主要功能有 Dependency Injection、Spring Context、Spring AOP
7、、Spring ORM、Spring DAO、Spring MVC。J2EE架构设计UML软件工程组织Spring-为什么使用Spring 利用延时注入思想组装代码,提高系统扩展性,灵活性,实现插件式编程。利用AOP思想,集中处理业务逻辑,减少重复代码,构建优雅的解决方案。利用HibernateTransactionManager类封装Hibernate事务管理,其是AOP思想的典型运用,使持久层操作代码简洁精悍。J2EE架构设计UML软件工程组织Spring-搭建Web应用环境 下载springFramework最新版本,将其下的*.jar 拷贝到项目lib中,并引用。在Web.xml中配置
8、spring的启动方式:Listener方式或Servlet方式。设置Spring配置文件。通常在系统运行前完Spring成初始化工作,因此在Web.xml中配置一个初始化Servlet。J2EE架构设计UML软件工程组织Spring-搭建Web应用环境J2EE架构设计UML软件工程组织Spring-搭建Web应用环境J2EE架构设计UML软件工程组织Spring-搭建Web应用环境J2EE架构设计UML软件工程组织Spring-Factory模式 在实际开发中会经常用到工厂模式,其完成的功能是使外部调用类不需关心具体实现类,这样非常适合在同一个事物类型具有多种不同实现的情况下使用。要实现工厂
9、模式我们必须设计要实现工厂模式我们必须设计AbstractFactoryAbstractFactory类类AbstractProductAbstractProduct类,为了实现灵活性还可能用反射机类,为了实现灵活性还可能用反射机制构建制构建ProductProduct实体。在得到具体实现类的时候也必须实体。在得到具体实现类的时候也必须通过工厂类完成,如图所示:通过工厂类完成,如图所示:J2EE架构设计UML软件工程组织Spring-Factory模式J2EE架构设计UML软件工程组织Spring-依赖注入 Spring的依赖注入能达到工厂模式的同样的效果,但其实现却优雅很多。看如下代码:在S
10、pring配置文件中配置Bean实现代码:Product a=XXX.getBean(“Product);这样即得到了ProductA的实例,代码中只硬编码了Product接口。是不是让你兴奋了?J2EE架构设计UML软件工程组织Spring-依赖注入Spring还允许以下三种方式实现依赖注入:设值注入 接口注入 构造函数注入J2EE架构设计UML软件工程组织Spring-依赖注入 我们重点讲述设值注入方式,先来看看通过设值注入能给实际开发带来什么好处.下图是不是让你有所领悟?J2EE架构设计UML软件工程组织Spring-演练 我们利用设值注入实现一个简单的计算器,让它实现两个数的加法或减法
11、运算。类图如下:Product实现类中与具体实现类无关联、无依赖,通过外部配置即可自由切换实现类,美妙!J2EE架构设计UML软件工程组织Spring-演练 假设我们要实现两个数相加,则配置如下(如果需要实现两个数相减,则将注释的algorithm Bean替换掉当前的即可):J2EE架构设计UML软件工程组织Spring-演练 测试代码如下,根据具体的实现类不同将得到两个数相应运算的结果。J2EE架构设计UML软件工程组织Spring-依赖注入总结从演练的例子可以看出Spring提供的依赖注入思想能让代码之间依赖性降低,转而交给配置文件进行外部配置,这样对于需求变化、后期维护、功能扩展带来便
12、利。Spring是一种工具,更是一种思想,开发人员可以在设计代码时发挥无限想象,挖掘出最适应项目代码组织形式。J2EE架构设计UML软件工程组织Spring-AOP模式AOP的全称为Aspect Oriented Programming,译为“面向方面编程”或“面向切面编程”,与熟悉的OOP(面向对象编程)思想所关注的目标有本质上的区别,AOP是针对具体业务领域、业务逻辑;OOP针对业务对象。Spring中事务管理机制就是AOP的一个具体运用。利用此机制省去了我们在每个具体实现类中去进行事务管理的编码,而将这一切交给Spring提供的事务代理实现类org.springframework.tra
13、nsaction.interceptor.TransactionProxyFactoryBean。J2EE架构设计UML软件工程组织Spring-AOP模式 在讲述AOP运用之前我们先来了解下AOP实现原理。Spring的Dependency Injection和AOP都是某一设计模式的经典应用及放大。也许通过Spring的事物管理机制你已经将AOP的实现原理与代理模式联系在一起了。的确如此,让我们先看看代理模式的思想。J2EE架构设计UML软件工程组织Spring-Proxy 代理模式的思想是:不让外部直接访问具体目标,而是通过一个代理类才能访问具体目标。类似在具体目标与外部之间放置一道“隔
14、离层“,所有与具体目标的通信均需通过这道”隔离层”来传送请求和返回状态。这样“隔离层“就能掌控访问具体目标的前前后后。如果我们需要在访问具体目标前或后加上一致的处理逻辑,无疑代理模式最为适合。就如事物管理。J2EE架构设计UML软件工程组织Spring-Proxy下面演练用Proxy模式来实现JDBC事务管理,先看类图:先编写Dao接口,让所有访问数据库的类和代理类都继承该接口,然后在代理类中传入要访问的具体类。这样就能通过代理类完成对具体实例的访问。J2EE架构设计UML软件工程组织Spring-ProxyJ2EE架构设计UML软件工程组织Spring-ProxyJ2EE架构设计UML软件工
15、程组织Spring-Proxy从DaoImpl类中代码可以看出我们没有编写事务的控制代码,而是转交给代理类完成,这样访问数据库的具体类不需要自己关心事务处理。让某一业务逻辑集中实现,能避免重复编写代码,方便修改和维护。上面的例子有两个缺陷1.局限一个相同的方法名。2.代理类继承一个具体接口,即使有类似功能的类,当接口改变,需新建继承其接口的代理类。J2EE架构设计UML软件工程组织Spring-Proxy 上面例子的缺陷可以通过Java的反射机制动态创建实例、方法得到解决。通过该思想,JDK1.3以上版本实现了动态代理(Dynamic Proxy)。说到这里也许你已经明白Spring Aop机
16、制是基于Dynamic Proxy来实现的。下面让我们来看看通过Spring Aop怎样来实现事务管理。J2EE架构设计UML软件工程组织Spring-TransactionManageJ2EE架构设计UML软件工程组织Spring-TransactionManageJ2EE架构设计UML软件工程组织Spring-AOP利用事务管理的例子,我们分析下AOP的概念:方面(Aspect)连接点(JoinPoint)通知(Advice)切入点(PointCut)目标对象(TargetObject)J2EE架构设计UML软件工程组织Spring-AOPJ2EE架构设计UML软件工程组织Spring-A
17、OPJ2EE架构设计UML软件工程组织Spring-AOP 方面:我们将业务组件的事务管理部分提取出来,被提取的层面就称为“方面“,如图中的事务管理。方面的意义在于将业务逻辑中复杂问题分离成不同层面,使其实现统一集中的管理。连接点:程序在执行过程中明确的点,如execute()方法。通知:在特定的连接点执行的动作。如在执行execute()方法前的预处理,在执行完execute()方法后的后处理。J2EE架构设计UML软件工程组织Spring-AOP 切入点:连接点的集合,指定在何时引发通知。如事务例子中配置了所有execute.*的方法为切入点。目标对象:包含连接点的对象,也称为被代理的对象
18、。如图中的业务组件。J2EE架构设计UML软件工程组织Spring-AOP 下面我们结合实例项目,看看借助Spring为程序结构、代码组织、业务处理所带来的优越。J2EE架构设计UML软件工程组织Spring-思考 在实际项目中哪些业务需求适合借助AOP思想实现?J2EE架构设计UML软件工程组织Spring-案例习题 请利用Spring IOC机制,完成项目中一组类的改造。请利用Spring AOP机制,设计一个能统一集中处理一组业务需求的类。J2EE架构设计UML软件工程组织Log4j-介绍log4j是用于java语言的日志记录工具,一个完整的软件,日志是必不可少的。项目开发中日志记录多种
19、多样,有打印在控制台中,有记录成文本文件,有保存到数据库中等。日志信息也许需要分为调试日志,运行日志,异常日志等。这些虽然实现简单,但是也繁琐。下面将介绍用log4j来实现日志记录。J2EE架构设计UML软件工程组织Log4j-搭建环境 下载log4j,http:/logging.apache.org/log4j,将log4j.jar拷贝到项目的lib中,并引用。建立log4j的配置文件,Log4j.xml 或 Log4j.propertiesJ2EE架构设计UML软件工程组织Log4j-演练 我们结合实例项目代码来演示Log4j的使用及带来的便利。J2EE架构设计UML软件工程组织Strut
20、s-介绍Struts是用于实现Web项目中UI层的开源产品,是MVC模式的经典实现案例。它属于Apache组织中的开源产品之一,之所以使用Struts:Struts将业务数据、页面显示、动作处理进行分离,这有利各部分的维护 Struts采用Front Controller模式来实现动作处理,让所有的动作请求都是经过一个统一入口,然后进行分发。这样方便我们在入口中加入全局控制代码的实现,如安全控制、日志管理、国际化 编码等J2EE架构设计UML软件工程组织Struts-介绍 通过Struts提供的ActionForm封装web form 中的元素,使重用web表单成为可能 借助Struts Va
展开阅读全文