安装了spring 安装ide 怎么才能在xml中有spring的提示

第 12 章 安装和使用SpringExt插件第 12 章 安装和使用SpringExt插件12.1. SpringExt插件有什么用?SpringExt扩展了Spring的schema机制,使得开发者可以借助schema来扩展框架的功能。然而使用schema来编写配置文件时,我们面临一个问题:XML编辑器到哪里去找到schema?例如,我们在Eclipse中打开一个典型的Webx配置文件:例 12.1. 在XML中指定Schema Location&?xml version="1.0" encoding="UTF-8" ?&
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:services="/schema/services"
xmlns:loaders="/schema/services/resource-loading/loaders"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
/schema/services
http://localhost:8080/schema/services.xsd
/schema/services/resource-loading/loaders
http://localhost:8080/schema/services-resource-loading-loaders.xsd
http://www.springframework.org/schema/beans
http://localhost:8080/schema/www.springframework.org/schema/beans/spring-beans.xsd
指定schema的位置。一般Eclispe会用一个XML编辑器来打开这类文件,然后试着从schemaLocation中取得所需要的schemas,并用它们来验证文件。然而,Webx/SpringExt的schema并不存在于网络上的任何一个地方,而是存在于jar包中,或是在内存中自动生成的。显然XML编辑器不能从这样的schemaLocation中得到什么。因此,当我们试图验证(validate)XML文件的时候,编辑器会警告:无法取得schema或DTD。当我们试图让Eclipse自动提示语法信息时,Eclipse会无所适从。如图所示。图 12.1. 无法验证的XML配置文件SpringExt提供了两种插件,可用来解决这个问题:Maven插件,和Eclipse插件。Maven插件 ——
你可以使用它,在localhost本机上启动一个监听8080端口的Schema
Server,通过它就可以访问到所有的schemas。这也是为什么中,要把schemaLocation指向localhost:8080的原因。只有这样,才能让任何普通的XML编辑器不需要任何特殊的设置,就可以通过这个插件来读到正确的schemas。Eclipse插件 ——
通过它,XML编辑器可以直接取得所有schemas的内容。除此之外,Eclipse插件也提供了更多的便利功能,例如:自动引入或清除某个namespace/schema定义。12.2. Maven插件通过SpringExt Maven插件,你可以在localhost本机上启动一个监听8080端口的Schema
Server,通过它就可以访问到所有的schemas。这种机制适合于任何一种支持schema验证的XML编辑器。12.2.1. 在pom.xml中定义插件在使用Maven插件之前,必须在要使用插件功能的项目的pom.xml文件中作出定义。如果是多模块的项目(multi-modules),下面的内容必须定义在根项目(即pom项目)中。例 12.2. 在pom.xml这定义SpringExt Maven插件&?xml version="1.0" encoding="UTF-8"?&
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
com.alibaba.citrus.tool
springext-maven-plugin
com.alibaba.citrus.tool
springext-maven-plugin
${springext-plugin-version}
在maven properties中指定插件的版本号,方便以后升级。 在项目中配置插件。12.2.2. 启动schema服务器在项目的根目录下,执行以下命令:mvn springext:run上述命令执行以后,打开浏览器,输入网址http://localhost:8080/schema就可以看到类似下面的内容:图 12.2. 用SpringExt maven插件罗列schemas如果这时你重新打开刚才的XML配置文件(最好重启eclipse以清除缓存),就可以看到Eclipse已经能够弹出语法提示了。图 12.3. 启动schema服务器以后,可以看到语法提示12.2.3. 导出所有的schemas在项目的根目录下,执行以下命令:mvn springext:export上述命令执行以后,将生成一个target/schemas文件夹,里面包含了所有的可用的schemas。12.2.4. Maven插件的可选参数SpringExt Maven插件还包含了一系列可选的参数。表 12.1. SpringExt Maven插件的可选参数参数名适用于命令默认值说明
contextPath
mvn springext:run
指定Schema URL的路径:
http://localhost:8080
/contextPath
/myschema.xsd
mvn springext:run
指定Schema URL的端口:
http://localhost
/contextPath/myschema.xsd
noTestClasspath
mvn springext:run
mvn springext:export
是否在单元测试的classpath中寻找schemas?
mvn springext:export
target/schemas
导出schemas到指定的文件夹。
mvn springext:export
导出schemas的目标文件夹的绝对路径
在导入的schemas中,如果有引用其它的schema的地方,使用指定的URL前缀。
http://localhost:8080/schema
/myschema.xsd
这些参数可以通过两种方法来设定。以参数port为例:通过pom.xml来设定&?xml version="1.0" encoding="UTF-8"?&
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
com.alibaba.citrus.tool
springext-maven-plugin
&port&9090&/port&
或者,通过命令行来设定mvn springext:run -Dport=909012.3. Eclipse插件如果你用Eclipse来作为你的应用开发的工具,那么SpringExt Eclipse插件能够为你提供最方便、更强大的功能。12.3.1. 安装插件下载并安装Eclipse,建议安装最新版的Eclipse:。运行Eclipse,从Help菜单中,打开Eclipse Marketplace。 图 12.4. 打开Eclipse Marketplace搜索关键词webx,找到Webx/SpringExt Plugin,点击Install按钮。图 12.5. 搜索并找到Webx/SpringExt Plugin开始安装插件。图 12.6. 勾选要安装的features图 12.7. 确认License授权图 12.8. 忽略关于签名的安全警告,选择OK继续安装图 12.9. 重启Eclipse12.3.2. 利用插件编辑Webx/SpringExt配置文件安装完成Eclipse插件以后,然后打开任何一个Webx/SpringExt的配置文件。你会发现,打开的是一个稍微有点不同的XML编辑器。图 12.10. SpringExt配置文件编辑器的界面假如你看到的并不是类似这样的编辑器界面,那么很有可能是因为你的Eclipse中还安装了其它的插件(例如:你安装了Spring
IDE、或者OxygenXML编辑器等),导致该文件被其它的编辑器打开了。如果是这样,请尝试用鼠标右键点击文件,然后选择Open With & SpringExt
Configuration File Editor。如图所示。图 12.11. 用Open With菜单打开文件在这个编辑器中,你可以做如下的事情:验证配置文件是否合乎schema语法 —— 按鼠标右键,选择validate。自动语法提示 ——
在键入时,eclipse会自动弹出语法提示;或者,你也可以通过eclipse的快捷键来激活语法提示(完全类似于编辑Java代码)。引入Namespaces —— 在键入时,eclipse会提示你引入可用的namespaces。每个namespace代表一个SpringExt
Configuration
Point或Spring的一个可扩展功能。引入一个namespace,就会创建一个xmlns条目,以及相应的schemaLocation。图 12.12. 在&beans:beans&中引入services namespace图 12.13. 在&services:pipeline&中引入valves namespace按住CTRL键(Mac下为CMD键),将鼠标移到任何一个链接上,或者namespace前缀及对应的标签上,都是可以点击查看的。表 12.2. 可作为超链接打开的内容分类可点击的内容说明SpringExt Configuration Point
/schema/services
这是一个Namespace URI,它代表一个SpringExt的扩展点(Configuration
点击它就可以打开相应Configuration Point的编辑器。
http://localhost:8080/schema/services.xsd
这是一个Schema
Location的链接,它代表一个SpringExt的扩展点(Configuration
Point)的schema。
点击它就可以打开相应Configuration Point的编辑器。
:resource-loading
这是一个Namespace前缀,它代表一个SpringExt的扩展点(Configuration
点击它就可以打开相应Configuration Point的编辑器。
SpringExt Contribution
http://localhost:8080/schema/services/resource-loading.xsd"
这是一个Schema
Location的链接,它代表一个SpringExt的捐献(Contribution)的schema。
点击它就可以打开相应Contribution的编辑器。
:resource-loading
这是一个XML标签,它代表一个SpringExt的捐献(Contribution)。
点击它就可以打开相应Contribution的编辑器。
Spring Pluggable Schema
http://www.springframework.org/schema/beans
这是一个Namespace URI,它代表一个Spring所定义的schema。
点击它就可以打开相应的Spring Pluggable Schema的编辑器。
http://localhost:8080/schema/www.springframework.org/schema/beans/spring-beans.xsd
或者:http://www.springframework.org/schema/beans/spring-beans.xsd
这是一个Schema Location的链接,它代表一个Spring所定义的schema。
点击它就可以打开相应的Spring Pluggable Schema的编辑器。
这是一个Namespace前缀,它代表一个Spring所定义的schema。
点击它就可以打开相应的Spring Pluggable Schema的编辑器。
点击Namespaces标签,即可管理配置文件中所引入的namespaces。图 12.14. Namespaces编辑界面在这里,你可以:浏览所有可用的namespaces。你可以用层次状,或是扁平状两种视图来查看。点击namespaces列表顶上的或按钮即可切换视图。对于层次状列表,点击namespaces列表顶上的按钮即可实现全部展开,或点击按钮可全部收拢。你也可以在过滤框里输入任何字符,来过滤列表,使之只显示你感兴趣的条目。选中某行namespace(注意不是打勾),可查看这个namespace的详细信息。例如:namespace的类型、定义在何处、有哪些schema版本等等。点击详细信息中的超链接可打开相应的内容的编辑器。勾选或清除namespace,可在配置文件中插入或清除相应的xmlns和schemaLocation条目。清除未使用的namespaces —— 选择SpringExt菜单中的“ Cleanup Unused Namespaces”、或者点击工具栏上的、或者按快捷键CTRL-SHIFT-O(Mac上为CMD-SHIFT-O)。升级到Webx 3.2.x的配置风格 —— 从Webx 3.2.x开始,改进了配置文件的格式 —— 对于非contribution
element采用unqualifed风格,也就是无namespace前缀,使配置文件更易读。表 12.3. 新老风格对比老风格Webx 3.2.x 新风格
name="register"
name="name" displayName="你的名字"
必须填写 ${displayName}
name="register"
name="name" displayName="你的名字"
必须填写 ${displayName}
但是这样配置文件会和以前的版本有所不兼容。如果你决定要升级Webx到3.2.0,只需要选择SpringExt菜单中的“ Upgrade to Webx 3.2.x Format”,或者点击工具栏上的按钮,即可立即转换格式。如果你要升级的配置文件不止一个,最简单的方法是在项目的根目录下执行下面的命令:mvn springext:convert这样所有的Webx/SpringExt配置文件都会被转换成新的格式。12.3.3. 利用插件编辑SpringExt组件当你在配置文件中,点击任何一个超链接时,就会打开并转到另一个编辑器。在那里,你可以浏览或修改(如果可写的话)SpringExt的组件的内容。编辑Configuration Point图 12.15. 编辑Configuration Point编辑Contribution图 12.16. 编辑Contribution编辑Spring Pluggable Schema图 12.17. 编辑Spring Pluggable Schema12.4. 本章总结SpringExt提供了可扩展的schema机制,虽然很强大,但是如果没有插件的帮助,使用起来很不便。用好插件,可帮助你成倍地提高工作效率。4821人阅读
我费了好长时间才搞定。步骤如下: 1.download GEF。注意应该是GEF-runtime,而不是SDK或其它,例如我下载的是GEF-runtime-I.zip。 2.下载updatesite_x.x.x.zip(
3 .解压。到这一步我们马上就会想copy-& 粘贴,错了!应该这样做: 打开eclipse(我的是eclipse3.0) 点击Help-&Software updates-&find and install.. 选中 search for new feather to install 点击New Local site.. 导航到updatesite_x.x.x的解压目录,剩下的你们自己解决。 4.使用spring IDE:点击菜单window-&show view -&ohter... 找到spring ide。 5.spring IDE 默认情况下是不包含你的project的(我就出现这种情况,在spring IDE 里只显示petclinic),更改方法: 关闭eclipse,把petclinic目录下的一个.project文件copy覆盖到你的工程目录下就ok了,也就是把你的工程的.project文件替换掉。&要想包含你的project,在Package Explorer窗口右键你的project, 会有一个Add Spring Beans Project Nature,点击这个就有了。 添加之后,再右键就会有个Remove Spring Beans Project Nature。之后再Sping IDE 中右键工程图标,选择&属性&,选择ConfigFile Add , 把Spring配置文件加进来,这样就能看到Spring的各个Bean了
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:294307次
积分:4478
积分:4478
排名:第2628名
原创:162篇
转载:13篇
评论:60条
(2)(1)(3)(1)(10)(15)(6)(35)(12)(1)(9)(4)(8)(6)(19)(12)(8)(8)(16)developerWorks 社区
在 Java™ Platform Enterprise Edition (Java EE) 社区内,Spring 正在成为一个非常受欢迎的框架。Spring 的最新版本的特性之一是它的 Object/XML (O/X) 映射支持。这个 API 支持开发人员在 Java 对象和 XML 之间来回转换。在本文中,您将学习如何使用 Spring 中的 Object/XML 映射特性并了解它的优势。
, 高级系统工程师, Triangle Information Solutions
Brian Carey 是一位信息系统顾问,擅长 Java、Java Enterprise、PHP、Ajax 和相关技术。您可以在 /brianmcarey 的 Twitter 上了解 Brian Carey。
Spring 是什么?Spring 是由 Rod Johnson 开发的一个健壮的 Java 应用程序框架,已在 Java 开发社区中得到广泛使用。Spring 以其流行的科技词汇而著名,比如 “dependency injection(依赖项注入)”、“inversion of control(控制反转)” 和 “aspect-oriented programming(面向方面编程)” 等。它还支持 Model-View-Controller (MVC) 模式,很好地兼容用于数据访问的各种数据库驱动程序。另外,它支持事务处理、单元测试、批处理和安全性。鉴于 Spring 的良好声誉和悠久历史,它通常是应用程序快速开发的首选框架。但是,最大的好处也许是:Spring 是免费的。 O/X Mapper 是什么?Spring 3.0 的一个新特性是 O/X Mapper。O/X 映射器这个概念并不新鲜,O 代表 Object,X 代表 XML。它的目的是在 Java 对象(几乎总是一个 plain old Java object,或简写为 POJO)和 XML 文档之间来回转换。例如,您可能有一个带有几个属性的简单 bean,且您的业务需要将那个 Java 对象转换为一个 XML 文档。Spring 的 O/X Mapper 能够为您解决那个问题。如果反过来,您需要将一个 XML 文档转换为一个简单 Java bean,Spring 的 O/X Mapper 也能胜任。有一点需要注意:Spring O/X Mapper 只是定义由流行的第三方框架实现的统一的界面。要利用 Spring 的 O/X 功能,您需要一个在 Java 对象和 XML 之间来回转换的实用程序。Castor 就是这样一个流行的第三方工具,本文将使用这个工具。其他这样的工具包括 XMLBeans、Java Architecture for XML Binding (JAXB)、JiBX 和 XStream。编组和解组进行 O/X 映射时,您经常会看到编组(marshalling)和解组(unmarshalling) 这两个术语。编组 指将 Java bean 转换成 XML 文档的过程,这意味着 Java bean 的所有字段和字段值都将作为 XML 元素或属性填充到 XML 文件中。有时,编组也称为序列化(serializing)。如您所料,解组 是与编组完全相反的过程,即将 XML 文档转换为 Java bean,这意味着 XML 文档的所有元素或属性都作为 Java 字段填充到 Java bean 中。有时,解组也称为反序列化(deserializing)。使用 Spring 的 O/X Mapper 的好处使用 Spring 的 O/X Mapper 的一个最直接的好处是可以通过利用 Spring 框架的其他特性简化配置。Spring 的 bean 库支持将实例化的 O/X 编组器注入(即前面提到过的 “依赖项注入”)使用那些编组器的对象。重申一遍,这将加快应用程序开发和部署。遵循坚实的面向对象的设计实践,Spring O/X 框架只定义两个接口:Marshaller 和 Unmarshaller,它们用于执行 O/X 功能,这是使用这个框架的另一个重大好处。这些接口的实现完全对独立开发人员开放,开发人员可以轻松切换它们而无需修改代码。例如,如果您一开始使用 Castor 进行 O/X 转换,但后来发现它缺乏您需要的某个功能,这时您可以切换到 XMLBeans 而无需任何代码更改。唯一需要做的就是更改 Spring 配置文件以使用新的 O/X 框架。使用 Spring 的 O/X Mapper 的另一个好处是统一的异常层次结构。Spring 框架遵循使用它的数据访问模块建立的模式,方法是将原始异常对象包装到 Spring 自身专为 O/X Mapper 建立的运行时异常中。由于第三方提供商抛出的原始异常被包装到 Spring 运行时异常中,您能够查明出现异常的根本原因。您也不必费心修改代码以捕获异常,因为异常已包装到一个运行时异常中。以下几个运行时异常扩展了基础异常 XMLMappingException:GenericMarshallingFailureException、ValidationFailureException、MarshallingFailureException 和 UnmarshallingFailureException。一个简单的演示现在您已经了解了 Spring 的 O/X Mapper 的背景和基础知识,可以检验它的使用方法了。在本文中,您首先创建一个简单的 Spring 应用程序,该程序独立于任何 Java Enterprise 依赖项。然后,您创建一个简单的 Java 类,它访问 Spring 的配置文件来实例化该类并注入 O/X 依赖项。参见
部分获取所有源代码文件(包括配置文件)的链接。编码首先应该注意 Spring 配置文件。 是应用程序用于执行编组和解组操作的配置文件。注意,这个文件必须 在运行时位于类路径中。清单 1. 配置文件&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"&
&bean id="oxmExample" class="com.xyz.OXMExample"&
&property name="marshaller" ref="castorMarshaller" /&
&property name="unmarshaller" ref="castorMarshaller" /&
&bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller"&
&property name="mappingLocation" value="classpath:mapping.xml" /&
&/beans&如您所见,这个配置文件只定义了两个 bean,这是为了简便起见。第一个 bean 是用于执行演示的类:com.xyz.OXMExample。与该类关联的两个属性使用依赖项注入,它们都使用 castorMarshaller bean 的一个实例注入。这是在 Spring 框架中定义 bean 的标准方法,经验丰富的 Spring 开发人员很快就会意识到这一点。另一个 bean 是 castorMarshaller bean 本身,它是 org.springframework.oxm.castor.CastorMarshaller 的一个实例,org.springframework.oxm.castor.CastorMarshaller 主要用于包装 Castor 框架。如前所述,使用 Spring 的 O/X 功能需要使用一个第三方 O/X 框架。在本例中,这个第三方产品是 Castor。还要注意,有一个属性使用 castorMarshaller 定义,那是用于在 Java bean 和 XML 输出之间来回映射的映射文件。这个文件称为
mapping.xml,它必须 在运行时位于类路径中。我将稍后解释 mapping.xml 文件的内容。 实际执行 O/X 映射器的代码的部分清单。如您所见,它是一个简单的 Java 类。清单 2. OXMExample 类(节选)public class OXMExample {
private static final String FILE_NAME = "simplebean.xml";
private SimpleBean simpleB
private Unmar
public void setMarshaller(Marshaller marshaller) {
this.marshaller =
public void setUnmarshaller(Unmarshaller unmarshaller) {
this.unmarshaller =
public void saveSimpleBean() throws IOException {
FileOutputStream os =
os = new FileOutputStream(FILE_NAME);
this.marshaller.marshal(simpleBean, new StreamResult(os));
} finally {
if (os != null) {
os.close();
public void loadSimpleBean() throws IOException {
FileInputStream is =
is = new FileInputStream(FILE_NAME);
this.simpleBean
= (SimpleBean) this.unmarshaller.unmarshal(new StreamSource(is));
} finally {
if (is != null) {
is.close();
public static void main(String[] args) throws IOException {
ApplicationContext appContext
= new ClassPathXmlApplicationContext("applicationContext.xml");
OXMExample ex = (OXMExample) appContext.getBean("oxmExample");
private void go() throws IOException {
simpleBean = getSimpleBean();
saveSimpleBean();
loadSimpleBean();
System.out.println("name: " + simpleBean.getName());
System.out.println("job description: " + simpleBean.getJobDescription());
System.out.println("age: " + simpleBean.getAge());
System.out.println("executive: " + simpleBean.isExecutive());
private SimpleBean getSimpleBean() {
SimpleBean simpleBean = new SimpleBean();
simpleBean.setAge(35);
simpleBean.setExecutive(false);
simpleBean.setJobDescription("Janitor");
simpleBean.setName("Mister Jones");
return simpleB
}要解释 ,必须首先介绍 main 方法,因为该方法将先执行。然后再接着介绍清单 2。首先,在 main 方法中,您的代码捕获 Spring 应用程序的上下文,就是您在
中看到的配置文件。这个文件必须在类路径中,否则运行代码将产生一个异常。当您获得应用程序上下文时,OXMExample 的一个实例从该配置文件中提供的定义创建。注意,这个 bean 在代码中的名称(oxmExample)与配置文件中定义的名称(见清单 1)一致。创建 OXMExample 的一个实例后,调用 go() 方法。这有点反常,因为 Spring 框架实例化一个已经从命令行运行的对象,但那只是为了实现演示目的而进行的简化。go() 方法在打印结果数据前完成 3 个任务:创建 SimpleBean 的一个实例。编组该实例。解组从编组创建的 XML 文档。您使用 getSimpleBean() 方法实例化一个包含一个虚拟员工的信息的 SimpleBean 对象。这个信息包含年龄(一个整数)、工作描述(一个字符串)、姓名(一个字符串)和该员工是否是执行官(一个布尔型)。您使用测试数据和返回调用者的返回对象(在本例中为 go() 方法)填充字段。您在编组发生时将这个 bean 写入一个 XML 文件,在解组发生时读取那个 XML 文件的内容。saveSimpleBean() 方法执行编组。首先,您获得一个指向 simplebean.xml 的对象,然后,您使用编组器对象(通过 Spring 的依赖项注入实例化)调用 marshal 方法。这个方法需要两个参数:要被编组的对象(本例中为 SimpleBean 实例)一个 StreamResult 对象,它基本上表示一个 XML 输出抽象loadSimpleBean() 方法执行解组。首先,您获取一个指向 simplebean.xml 的 FileInputStream 对象,然后,您使用解组器对象(通过 Spring 的依赖项注入实例化)调用 unmarshal 方法。唯一需要的参数是一个包装 FileInputStream 对象的 StreamSource 对象。注意,解组将创建一个泛型对象,因此您必须将其显式设置为 SimpleBean 类型。即使这个类和 Spring 配置文件已经就绪,您也还没有准备好运行这段代码。还记得
中的映射文件吗?您还需要定义那个映射文件。定义代码如
所示,而且,再说一遍,它也必须在运行时位于类路径中。清单 3. mapping.xml 文件&mapping&
&class name="com.xyz.SimpleBean"&
&map-to xml="simplebean"/&
&field name="age" type="integer"&
&bind-xml name="age" node="element"/&
&field name="executive" type="boolean"&
&bind-xml name="is-executive" node="element"/&
&field name="jobDescription" type="string"&
&bind-xml name="job" node="element"/&
&field name="name" type="string"&
&bind-xml name="name" node="element"/&
&/mapping& 中的映射文件特定于 O/X 映射的 Castor 实现。第一个元素(class)定义要映射到一个 XML 输出的类。您必须指定完整路径。map-to 元素提供 XML 文件的根元素的名称。这很重要,因为 XML 规范规定,每个 XML 文件必须有一个根元素。每个 field 元素都将被映射到 SimpleBean 类中的一个特定字段。每个 field 元素的 bind-xml 子元素用于指定关于该字段的特定于 XML 的信息,如对应的 XML 元素的名称,每个字段的值应该是一个元素值还是一个属性值。如您所见,在本例中,所有值都是元素值。测试尽管代码已经编写完成,但在执行这个应用程序之前,您必须处理一些依赖项。特定于 Spring 的依赖项有:org.springframework.asm-3.0.0.M4.jarorg.springframework.beans-3.0.0.M4.jarorg.springframework.context-3.0.0.M4.jarorg.springframework.core-3.0.0.M4.jarorg.springframework.expression-3.0.0.M4.jarorg.springframework.oxm-3.0.0.M4.jar特定于 Castor 的依赖项有:castor-1.3-core.jarcastor-1.3-xml.jar您还需要 commons-logging-1.1.1.jar 和 log4j-1.2.15.jar,因为 Spring 框架需要它们。所有这些 Java Archive (JAR) 文件必须在运行时位于类路径中。如果您在没有这些依赖项的情况下试图运行代码,您很可能会收到一个异常,指出某个类没有找到。如果遇到这种情况,只需双击您的类路径,确保所有的必要依赖项已就绪。事实上,要成功编译这段代码,您需要大部分 JAR 文件。要了解关于获取这些 JAR 文件的信息,请参见本文末尾的 。您可以使用您钟爱的 IDE 或只是使用命令行来运行 OXMExample.class。要从命令行运行,只需从您的工作目录输入 java -cp [classpath] OXMExample,这里的 [classpath] 是指向刚才提到的所有依赖项(JAR 文件和配置文件)的类路径。首次运行该程序后,一个名为 simplebean.xml 的新文件将出现在您的工作目录中。该文件的内容应该如
所示。清单 4. simplebean.xml 文件&?xml version="1.0" encoding="UTF-8"?&
&simplebean&
&age&35&/age&
&is-executive&false&/is-executive&
&job&Janitor&/job&
&name&Mister Jones&/name&
&/simplebean& 显示了来自应用程序的编组端的输出,而
则显示来自应用程序的解组端的结果,这些结果将在您的控制台中显示。清单 5. 解组输出name: Mister Jones
job description: Janitor
executive: false现在,您已经成功地完成了您的首次 Spring O/X 映射测试。祝贺您!现在最好做开发人员应该做的工作:修改代码。向类添加字段并将它们映射到 XML 文件。删除一些字段并将它们从 XML 文件中移除。参考 Castor 文档,尝试一些更复杂的工作,比如嵌套元素。您可以随心所欲地尝试各种可能性。结束语Spring 的 O/X 映射接口是 Spring 框架的强大特性。借助它,您不仅可以将 XML 文档转换为 Java 对象,还可以将 Java 对象转换为 XML 文档。它利用 Spring 的一个关键优势:依赖项注入。通过结合使用依赖项注入和 Spring 的 O/X Mapper,您可以轻松开发一个解决方案,该方案可以使用任一 O/X 实现,比如 Castor、XBeans、JiBX、JAXB 和 XStream。由于各个特定实现是 Spring 强大的 Inversion of Control 容器的一部分,开发人员可以在多个特定 O/X 实现之间轻松切换而无需修改代码。Spring 的 O/X Mapper 还向开发人员提供一个统一的异常层次结构,这意味着不管您使用哪个第三方实现,抛出的运行时异常都是相同的。再强调一次,这将有利于在多个 O/X 供应商之间切换。在 Java 开发社区中,提供 XML 支持的 Java 应用程序非常热门并且 Spring 框架被广泛使用,因此 Spring 的 O/X Mapper 将受到全世界 Java 应用程序开发人员的欢迎。
下载描述名字大小本文的源代码4KB
参考资料 (Brett McLaughlin,developerWorks,2007 年 11 月 — 2008 年 4 月):在一个包含 4 部分的文章系列中了解关于 Castor 和它的特性的更多信息,该系列介绍的内容包括 Castor 的安装和设置,Java 和 XML 代码的编组和解组,模式之间的映射,以及将 Java 对象绑定到 SQL 数据存储上。(Naveen Balani,developerWorks,2005 年 6 月 — 10 月):使用这个 4 部分系列探索 Spring 框架的秘密。:了解如何才能成为一名 IBM 认证的 XML
和相关技术的开发人员。:访问 developerWorks XML 专区
,获得广泛的技术文章和技巧、教程、标准和 IBM 红皮书。
developerWorks
和 :随时关
注这些活动中的技术。:收听面向软件开发人员的有趣访谈和讨论。
:获取运行本文提供的示例需要的特定于 Castor 的 JAR 文件。:获取运行本文提供的示例需要的特定于 Spring 的 JAR 文件。:获取运行本文提供的示例需要的特定于 Commons 的 JAR 文件。:获取运行本文提供的示例需要的特定于 log4j 的 JAR 文件。下载
或 ,并开始使用来自 DB2®、
Lotus®、Rational®、Tivoli® 和
WebSphere® 的应用程序开发工具和中间件产品。
:参与几个与 XML 有关的讨论之一。:阅读这些博客并加入 。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
IBM PureSystems(TM) 系列解决方案是一个专家集成系统
通过学习路线图系统掌握软件开发技能
软件下载、试用版及云计算
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=XML, Java technologyArticleID=453658ArticleTitle=体验 Spring 的 Object/XML 映射支持publish-date=

我要回帖

更多关于 spring ide 的文章

 

随机推荐