SCA(Tuscany)+Spring+Hibernate使用范例V0.1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SCA(Tascany)Spring开发与使用范例
1.概述
本文档描述了基于Eclipse3.5和Apache Tascany基础之上的Spring+Hibernate快速入门的使用范例。本文将着手了解或解决如下内容:
⏹Spring 开发SCA 组件时需要掌握的一些基本设计原则。
⏹如何将Spring beans 公开为SCA 服务,
⏹如何在Spring 应用程序中访问SCA 服务和属性。
⏹如何使用Spring Framework 和Apache Tuscany SCA Java 运行时来设计和开发SCA 组件。⏹如何结合SCA 与Spring 来创建分布式服务应用程序。
2.开发环境
2.1.环境准备
为了在实践中完成下面文中描述的内容,您需要以下工具:
2.2.环境搭建(参考SCA(Tascany)环境搭建和使用范例)
3.SCA 与Spring 两者相结合的优势
Spring Framework 与SCA 采用许多相同的设计原则。SCA 将Spring 视为其组件的一种实现技术。SCA Sprig Component Implementation Specification 定义了如何采用这种方式来使用Spring。与Spring bean 类似,SCA 组件可以包含到其他组件所提供的服务的引用,并且有一些属性可供配置。
与Spring 形成对比的是,SCA 是一种跨语言的分布式组件架构,它支持多种组件通信机制。通过将Spring beans 发布为可由其他组件访问的服务并为Spring beans 提供关联到其他(可能为远程)组件的服务的引用,SCA 可以扩展Spring 组件的功能。
4.SCA与Spring 结合的原则
要将SCA 与Spring 相结合,一种有效的方法是使用Spring 来构建“粗粒度”的服务组件实现,并引入到SCA 中以便公开服务、关联服务组件以及处理异构和分布式系统。SCA 可以在使用Spring 实现的应用程序中添加一些有用的功能,比如说:
⏹对远程组件以及多种协议的扩展支持
⏹支持使用不受JVM 支持的各种编程语言来编写组件
⏹支持WS-Policy 针对安全性和事务等活动指定的策略
⏹易于测试组件是Spring 的一项优异的特性。
缺少API 和注入技术导致您只能使用简单的模拟对象进行测试。SCA 在服务方面对此进行了补充,因为关于服务组件的SCA 复合集可以方便地切换到模拟配置以进行测试。
5.Tuscany SCA与Spring结合的步骤
5.1.将Spring 应用程序定义为SCA 组件
其中:
一个Spring 应用程序可被定义为SCA 复合集(即SCDL:SCDL is used to describe SCA elements such as modules, references, imports, and exports)内的一个SCA 组件。其形式如下图所示:
其中
6.示例程序(WebService+SCA+Spring+Hibernate)
下面我们来开发一个示例程序。在本示例中,您将看到如何利用SCA集成现有的Spring组件,并对其进行向外发布。
6.1.创建工程
首先我们在d:\TuscanyWorkspace\工作区下,创建一个名为SpringDemo “Dynamic Web Project”的工程。加载TuscanyLibrary(在开发环境建立一文中已经指出)。并将apache-tuscany-sca-1.6.zip的lib 目录中的.jar文件COPY到工程的lib目录中。
以上是一个Java Application中对OSOA包的使用。当然对于Java Web Application需要将这些包加到Web Application的lib目录下。同时本示例还需要将hibernate和c3p0的JAR包加入到lib目录下。
6.2.代码
下面的我们要实现的是基于Apache Tomcat来发布一个tuscany的SCA组件。
程序代码的包结构如下图所示:
图6-示例程序的包结构
6.2.1.创建基于Hibernate的数据访问程序
6.2.1.1.创建Hibernate工具类—HibernateUtil.java
此类主要用于实现对数据库的CRUD基本操作,需要注意的是hibernate.cfg.xml文件是通过注入的
6.2.1.2.创建一个CommonDao类
6.2.1.3.创建一个POJO类和Hibernate的.hbm.xml映射文件
6.2.1.4.创建hibernate.cfg.xml文件
6.2.2.创建基于SCA容器并集成Spring的Composite
6.2.2.1.在web.xml中添加tuscany过滤器
6.2.2.2.创建Spring Bean配置
在WebContent/spring-context目录下创建beans-user.xml文件,内容如下
创建beans-commondao.xml,内容如下:
创建beans-hibernate-util.xml
6.2.2.3.创建SCA包装