java软件架构设计方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


基础结构层(Infrastructure Layer) :该层为应用程序的数据存取提供服务,它可以是应用程 序本身的持久化机制,也可以是外部系统提供的数据访问的 Web Service 等。提供了能被其 它各层访问的通用技术框架,比如异常捕获与处理、日志、认证、授权、验证、跟踪、监 视、缓存等等。这些操作通常会横向散布在应用程序的各个层面,面向方面编程(AOP) 关注的就是如何在不影响对象本身处理逻辑的基础上来实现这些横切的却又必不可少的功 能点。
3.3 技术应用
3.3.1 数据库动态生成技术和 ORM 框架(Entity Framework) 通过使用使用 Hibernate+ant+xdoclet 技术,从而实现 hbm 文件和数据库从代码生成,这大大提高了 在开发阶段数据库应对业务变化的能力。 同时采用 ORM 框架,可以隐藏数据访问的细节,使得与数据库交互变得简单易行,并且完全不用考 虑具体的 SQL 语句,从而实现快速开发,也不会因开发人员的 T-SQL 水平而出现各种人为的性能问题。
2
设计优缺点
2.1 优点
2.1.1 提高系统的可测试性 多层(N-Layer)架构,层与层之间是低耦合的,增加各层的独立性,从而也提高了可测试性,这样 开发出来的系统才更加健壮。 2.1.2 对解决方案的维护和管理变得更加简单 层内高内聚、层间低耦合的结构,使得系统实现与分层组织方式变得非常灵活方便,维护和管理将 非常直接,高效。 2.1.3 增加系统的可移植性(模板化) 在企业软件开发中,许多模块都是可通用的,例如日志、异常、缓存、验证模块等等。通过分层, 可以容易的分离出通用的模块,便于迅速应用到其他的项目,实现模板化。 2.1.4 数据库根据编码自动生成 框架 Hibernate 技术优势,融入 ORM 框架,实现了从代码生成数据库的强大功能,在开发测试阶段 数据库可以很容易应对业务的变化,从而大大提高了开发人员的效率。 2.1.5 增强系统的可伸缩性 同样借助于分层的优势以及架构中各部分设计的高内聚性,可以各层就像独立的模块,互相独立, 增删各个独立的模块,不会影响到其他的模块或层的功能,这样就增强了系统的可伸缩性。 2.1.6 实现编码自动化避免人为性能问题 新框架采用 Hibernate 框架实现数据库访问的封装,日志、异常捕获以及 AOP 拦截等常用功能,减 少重复模块编码量的同时,也避免了因人为因素导致的性能问题。
杨扬,王科 201数据源,如图:
点击 Next.
选择不需要创建 SessionFactory.
3)
配置持久层 Hibernate+ant+xdoclet: 1. 用 xdoclet 标签写 java 类
2.
再在每个属性的 get 方法上面添加对应的 xdoclet 标签,如图:
4)
3.2 项目环境搭建
3.2.1 先决条件 该架构项目开发基于以下先决条件: MyEclipse8.6; Struts2,spring,Hibernate; ANT,Xdoclet; Oracle10g;
3.2.2 环境搭建 1) 包结构搭建,如图;
2) 所示
配置 Struts2+Spring+Hibernate: 1. 配置 Struts2,首先添加 struts2.0 点击工程右键 MyEclipse Add Struts Capabilities,如图
3.4 可能的技术应用及替代方案
3.4.1 数据库访问部分 采用 ORM 框架将由更多选择:jooq,hibernate,Ujorma 等等;项目较小的情况,也可以使用 jdbc 直 接进行数据访问。 3.4.2 可重用模块部分 日志、异常及验证等可重用模块可采用 java 插件提供一致的功能,也可以根据每一模块采用一些技 术框架,甚至自己开发。比如日志模块还可使用 Log4j 等。
配置 hibernate.properties 用于配置数据库连接,如图:
5)
build.xml ant 的配置,如图:
右击鼠标,选择“run as”---“External Tools Configurations” ,选择 Targets 选项,如图:
选中前两个选项,然后“run”,便会自动生成相应的 Hbm 配置文件和数据库。
这些操作通常会横向散布在应用程序的各个层面面向方面编程aop关注的就是如何在不影响对象本身处理逻辑的基础上来实现这些横切的却又必不可少的功32项目环境搭建321先决条件该架构项目开发基于以下先决条件
java 软件架构设计方案
1 设计思想
该架构方案设计原理包括:分层架构思想、领域驱动设计思想(DDD) 、面向对象分析与设计。 采用多层(N-Layer)逻辑架构的实现方式对于降低系统开发的复杂度是非常必要的,并在设计、开 发、测试、部署及维护等各个环节为应用系统带来高可用性、高延展性等正面效应。
2.2 缺点
2.2.1 需要非常熟悉业务领域知识 在系统的整个开发过程中,需要对业务的非常熟悉才能正确完整的实现系统的业务逻辑,否则,就 偏离的架构的核心——领域模型,从而导致项目重构甚至失败。 2.2.2 不适合过于简单的项目 该架构本身就是为了应对复杂性而提出的,简单项目不需要采用领域驱动设计开发。
选择 Struts2.1 拦截所有.action 请求。 2. 配置 Spring,点击工程右键-MyEclipse-Add Spring Capabilities,
添加相关的 jia 包,我这里添加了除 JDO,IBATIS,OpenJPA,EclipseLink 之外的所有包。 点击 Next,然后 finish 3.配置 Hibernate, 首先配置 Database。点击 MyEclipse 右上角的 MyEclipse Database Explorer,如图:
在左边的 DB Browser 区域右键 new 一个 DataBase Driver
准备工作完成以后继续向工程里添加 Hibernate3.3。 添加方法: 右键点击工程MyEclipse- add hibernate Capabilities,如图:
选择默认点击 Next
点击 Next,如图:
3
架构实现
3.1 整体架构说明
该架构使用 JAVA 技术实现。 整体架构可能会在以后的逐步完善中有所改变。 目前的系统架构图如下:

表现层 (Presentation Layer) : 该层的主要职责是通过用户界面向用户展示必要的数据信息, 同时接收用户的反馈。 服务层(Service Layer) :该层提供对领域层业务的封装,通过网络或接口向上层(即表现 层)暴露粗粒度的业务服务。 领域模型层 (Domain Model Layer) : 该层的主要职责是展现业务/领域逻辑、 业务处理状态, 以及实现业务规则,它同时也包含了领域对象的状态信息。这一层是整个应用程序的核心 部分,它可以包含下面这些概念和内容: 实体(Entities) 值对象(Value Objects) 领域服务(Domain Services) 仓储契约/接口(Repository Contracts/Interfaces)
3.3.2 面向方面编程 AOP(PolicyInjection) 使用 Spring 框架来实现 AOP 技术。通过利用 AOP 技术,分离出核心关注点和横切关注点。在实现 了诸如日志、事务管理、权限控制等横切关注点的通用逻辑后,开发人员就可以专注于核心关注点,将 精力投入到解决企业的商业逻辑上来。同时,这些封装好了的横切关注点提供的功能,可以最大限度地 复用于商业逻辑的各个部分,既不需要开发人员作特殊的编码,也不会因为修改横切关注点的功能而影 响具体的业务功能。 3.3.3 实现依赖注入和 IoC(Unity) 使用 Spring 实现依赖注入(Dependence Injection/DI)机制。分层架构的设计,层与层之间是松散耦 合的。 “松散耦合”实际是指上层类不能具体依赖于下层,而应该依赖于下层提供的一个接口。这样,上 层不能直接实例化下层中的类,而只持有接口,至于接口所指变量最终究竟是哪一个类,则由依赖注入 机制决定。
相关文档
最新文档