精通Hibernate:Java对象持久化技术详解(一)

第1章 Java对象持久化技术概述
1.1 应用程序的分层体系结构
应用程序的三层结构:
表述层:提供与用户交互的界面。包括GUI界面(图形用户界面)和WEB页面。
业务逻辑层:实现各种业务逻辑。包括Java应用的持久化层,负责数据访问。
数据库层:负责存放和管理应用的持久性业务数据。
层与层之间存在自上而下的依赖关系。每个层都向上公开接口,封装实现细节。
Hibernate中间件,可以为任何一个需要访问关系数据库的Java应用服务
1.2 软件的模型
概念模型,处于软件分析阶段。概念模型显示了问题域中的实体(定义了实体的属性和实体的关系)
1.3 直接通过JDBC API来持久化实体域对象
JDBC(Java Database Connectivity)API包括:
1.4 ORM模式简介
对象-关系映射(Object-Relation Mapping, ORM)模式指在单个组件中负责所有实体域对象的持久化,封装数据访问细节,采用对象-关系映射文件(.XML)映射元数据来描述对象-关系映射细节。
一个持久化类和一个表对应,类的每个实例对应表中的一条记录。
ORM模式执行SQL语句的步骤:
1.5 实体域对象的其他持久化模式
主动域对象模式
主动域(实体域)对象,在实现中封装了关系数据库模型和数据访问细节。在实体域对象中封装自身的数据访问细节,在过程域对象中完全负责业务逻辑。此时整个应用为三层应用结构:表述层、业务逻辑层、数据库层
JDO模式
1.6 Hibernate API 简介
提供访问数据库的操作的接口:Session接口、Transation接口、Query接口
用于配置Hibernate的接口:Configuration接口
.............
Tags: Hibernate  java  MVC  笔记  
精通Struts:基于MVC的JavaWeb设计与开发(二十一)

第21章 用StrutsTestCase测试Struts应用
Struts行为测试框架StrutsTestCase实战
  阅读提要 StrutsTestCase是一个强有力的易于使用的针对Struts行为的测试框架。StrutsTestCase,并与传统型JUnit测试相结合,将会带给你一个相当高的测试覆盖率并提高你的产品的可靠性。
  一、引言
  StrutsTestCase是一个用于测试Struts行为的基于Junit的测试框架。如果你使用Struts,那么你会注意到它可以提供给你一种容易而有效的方式来测试你的应用程序的Struts行为类。
  典型的J2EE应用程序都是分层构建的,如图1所示。
  ·DAO层封装了数据库存取。Hibernate映射和对象类,Hibernate查询,实体EJBs,或一些其它的实体-关系持续性技术都可以在这一层找到。
  ·商业层包含更高级的商业服务。理想地,这个商业层将是相对独立于数据库实现。在这个层上经常使用会话EJBs。
  ·描述层包含为用户显示应用程序数据并解释用户请求。在一个Struts应用程序中,这一层典型地使用JSP/JSTL页面来显示数据并且使用Struts行为来解释用户查询。
  ·客户层基本上是运行于用户机器上的web浏览器。客户端逻辑(例如,JavaScript)有时被放在这里,尽管很难对其进行有效地测试。
  DAO和商业层的测试或者可以通过使用经典的JUnit测试或者使用各种JUnit扩展来进行,具体依赖于架构的实现细节。DbUnit是一种用来进行数据库单元测试的良好选择。
  另一方面,测试Struts行为总是很困难的事情。即使在商业层严格地限制于商业层的构建时,Struts行为也总要包含重要数据校验,转换和流程控制代码。不对Struts行为进行测试将会在代码覆盖率上留下一道很脏的鸿沟。StrutsTestCase会让你填充这条鸿沟。
  对行为层进行单元测试还带来其它一些益处:
  ·可以更好地规划视图和控制层,从而使之更为简单清晰。
  ·更容易重构行为类。
  ·避免冗余的未使用的行为类。
  ·测试实例有助于对行为层进行归档-这在创建屏幕时是很有用的。
  上面是基于测试开发的典型好处,并且它们可以应用于在各种情况下使用的Struts行为层。
  二、StrutsTestCase简介
  StrutsTestCase工程提供了一种灵活又方便的方法来从JUnit框架内测试Struts行为。它能够使你对你的Struts行为进行白色盒子测试-通过在调用行为后建立请求参数并检查结果Request或Session的状态。
  StrutsTestCase允许或者是一个模仿测试方式-这时框架模拟web服务器容器,或者是一个容器内方式-这时使用Cactus框架来从服务器容器(例如Tomcat)内部运行测试。一般地,我比较喜欢模仿测试方式,因为它更为轻量级的且运行更快些,并因此允许较宽松的开发周期。
所有的StrutsTestCase单元测试类或者派生于MockStrutsTestCase以进行模仿测试,或者派生于CactusStrutsTestCase以进行容器内测试。在此我们先讨论模仿测试,因为它要求较少的配置并且运行较快些。
  三、实战StrutsTestCase
  为了使用StrutsTestCase来测试这个行为,我们创建一个扩展类MockStrutsTestCase的新类。这个类提供一系列方法来构建一个模拟的HTTP请求,调用相应的Struts行为以及一旦在行为完成时校验应用程序状态。
四、测试Struts错误处理
  测试错误处理也是一件很重要的事情。假定,如果指定一个无效的国家代码时,我们想要检查应用程序仍然运行良好。为此,我们可以写一个新的测试方法并且使用verifyActionErrors()检查返回的Struts ErrorMessages:
五、定制测试环境
  重载setUp()方法有时是很有用的-它让你指定非缺省的配置选项。在这个例子中,我们使用一个不同的struts-config.xml文件并且不激活XML配置文件校验:
六、第一级性能测试
  测试一个行为或一系列的行为是一个十种优秀的测试方式-它要求能够存取响应次数。从Struts行为中进行测试允许你校验全局的服务器端性能(当然,除去产生JSP页面)。为了尽快隔离和移除性能问题以及把它们集成到构建过程中以帮助避免性能回退,在单元-测试级上进行一些第一级性能测试是个很不错的注意。
下面是我用来进行第一级Struts性能测试的基本原则:
七、结论
  一般地,单元测试是进行灵敏编程特别是基于测试开发的一个基本部分。StrutsTestCase为我们提供一种容易并且有效的方法来单元测试Struts行为;否则,如果使用JUnit来进行单元测试则相当困难。
..............
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(二十)

第20章 用ANT工具管理Struts应用
20.1 Web应用常用的开发目录结构
build;deploy;doc;lib;classes;src;web;
20.2 安装配置ANT
http://ant.apache.org/
20.3 创建build.xml文件
...........
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(十九)

第19章 Struts与Apache通用日志包
19.1 Apache通用日志包概述
通用日志包支持的日志:
Log4j日志;JDK Logging日志(JDK自带的日志器);SimpleLog日志(把日志消息输出到标准的系统错误流System.err)
org.apache.commons.logging.Log接口
日志级别机制:
19.2 常用的日志实现
19.3 配置通用日志接口
19.5 在Struts应用中访问通用日志接口
..............
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(十八)

第18章 Struts 与 SOAP Web服务
18.1 SOAP简介
简单对象访问协议(Simple Object Access Protocol, SOAP)是在分散或分布式的环境中交换信息的简单协议,以XML作为数据传送方式。
18.2 建立Apache AXIS环境
http://ws.apache.org/axis/
18.3 创建和发布SOAP服务
1、创建实现SOAP服务的Java类
2、创建Web服务发布描述文件WSDD(Web Service Deployment Descriptor)
.wsdd文件定义一个SOAP服务:
元素,指定了WSDD所用的XML名字空间
元素,定义了一个SOAP服务
元素,为在网络上传输的JavaBean对象指定专门的XML序列化器和反序列化器
3、通过AXIS的AdminClient客户程序发布SOAP服务
18.4 在Struts应用中访问SOAP服务
只需为控制层提供一个业务代理实现类
...........
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(十七)

第17章 Struts与EJB组件
17.1 J2EE体系结构简介
客户层;J2EE服务器层;数据库服务层
17.2 创建EJB组件
17.3 在Struts应用中访问EJB组件
创建业务代理实现类
运用EJBHomeFactory模式
17.4 发布J2EE应用
在Jboss-Tomcat上部署EJB组件
.........
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(十六)

第16章 Tiles 框架
Tiles 框架包含:
Tiles 标签库;Tiles 组件的配置文件;Tiles 插件
16.1 采用基本的JSP语句创建复合式网页
创建动态Web网页的最基本的方法是为每个页面创建独立的JSP文件
16.2 采用JSP的include指令来创建复合式网页
把独立的JSP页面中相同的部分放在独立的JSP文件中,然后通过include指令把其他JSP页面包含进来
16.3 采用标签创建复合式网页
16.4 采用Tiles模板创建复合式网页
的作用类似于方法中的形参,该标记将被调用到该模板的页面使用标记指定的具体信息。
16.5 采用Tiles模板和Tiles组件创建复合式网页
创建Tiles组件的配置文件
...........
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(十五)

第15章 Struts Nested 标签库
15.1 标签和标签
标签:定义一个新的嵌套级别,表达JavaBean之间的嵌套关系
标签:输出当前嵌套级别信息
15.2 标签
标签:显示指定顶层级别的JavaBean
15.3 和其他标签库中的标签功能相同的Nested标签
标签和标签具有相同的功能,都可以生成文本框。
区别在于
标签的property属性为与当前嵌套级别对应的JavaBean的某个属性
标签的property属性为与当前表单对应的ActionForm Bean的某个属性
..........
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(十四)

第14章 Struts Logic 标签库
14.1 进行比较运算的Logic标签
标签:比较变量是否等于指定的常量
标签:比较变量是否不等于指定的常量
标签:比较变量是否大于或等于指定的常量
标签:比较变量是否大于指定的常量
标签:比较变量是否小于或等于指定的常量
标签:比较变量是否小于指定的常量
14.2 进行字符串匹配的Logic标签
标签:判断变量中是否包含指定的常量字符串
标签:判断变量中是否不包含指定的常量字符串
14.3 判断指定内容是否存在的Logic标签
标签:判断指定的变量是否为null或者为空字符串""
标签:判断指定的变量是否不为null并且不为空字符串""
14.4 进行循环遍历的Logic标签
标签:在一个循环中遍历数组、Collection、Map、Enumeration、Iterator中的所有元素
14.5 进行请求转发或重定向的Logic标签
标签:进行请求转发
name属性指定转发目标,与struts-config.xml中的元素的子元素匹配
..........
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(十三)

第13章 Struts Bean 标签库
13.1 访问HTTP请求信息或JSP隐含对象
13.2 访问Web应用资源
标签:显示资源包(Resource Bundle)中的消息
13.3 定义或输出JavaBean
标签:定义一个变量
........
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(十二)

第12章 Struts HTML 标签库
12.1 用于生成基本的HTML元素的标签
12.2 基本的表单标签
12.3 检查框和单选按钮标签
12.4 下拉列表和多选列表标签
12.5 在表单中上传文件标签
12.6 标签
12.7 标签
..........
Tags: java  MVC  笔记  struts  
精通Struts:基于MVC的JavaWeb设计与开发(十一)

第11章 异常处理
11.1 Java异常处理
Java异常的根类是java.lang.Throwable类,包含有两个直接子类:
java.lang.Error类,表示程序本身无法恢复的严重错误
java.lang.Exception类,表示可以被程序捕获并处理的错误
11.2 Struts框架异常处理机制概述
Struts框架在视图层和控制层提供了对异常的处理。
Struts控制器负责捕获各种异常,包括控制器运行中本身抛出的异常以及调用模型的业务方法时抛出的异常。
视图层的标签检索特定范围内的ActionMessages对象,把本地化的错误消息输出到网页上。
11.3 Struts框架异常处理机制的细节
Struts框架在响应用户请求时的方法调用过程:
.......
Tags: java  MVC  笔记  struts  
分页:[«] [1] [2] [3] [4] [5] [6] [7] [8] 9[10] [11] [12] [13] [14] [15] [»]
Feed订阅集
勤劳致富^.^
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(VS为主):3769186.