首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Spring Oxm设置castor属性

使用Spring Oxm设置castor属性
EN

Stack Overflow用户
提问于 2012-07-16 22:46:28
回答 2查看 2.7K关注 0票数 2

Spring Oxm允许您使用不同的编组/解组程序,Castor就是其中之一。

默认情况下,castor编组未缩进的xml文档,而官方文档告诉我们,将包含org.exolab.castor.indent=true行的castor.properties文件放入search locations将覆盖默认行为。

现在,当在web应用程序(Spring Batch Admin)中使用Spring Oxm时,我如何覆盖castor jar中的castor.properties?

我有以下bean配置(删除了额外的行),但据我所知,它们没有为此设置必要的属性。

代码语言:javascript
复制
<bean id="myCastorMarshaller" 
    class="org.springframework.oxm.castor.CastorMarshaller">
<property name="mappingLocation" value="classpath:/mapping/my-mapping.xml" />
</bean>

<bean id="myXmlWriter" 
   class="org.springframework.batch.item.xml.StaxEventItemWriter">
<property name="marshaller" ref="myCastorMarshaller" />
</bean>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-19 19:15:11

回答我自己的问题:使用Spring 3.1.2没有解决这个问题的方法。

org.springframework.oxm.castor.CastorMarshaller类应该负责设置属性,它甚至对这个SPR-8470有jira问题,但是补丁在一年多后没有提交到主分支。

任何人都可以将CastorMarshaller at Github与提议的patch进行比较。

简而言之,我们需要一个setProperties(...)方法,但未提交修补程序。

票数 1
EN

Stack Overflow用户

发布于 2012-07-17 07:36:25

在web应用程序(Spring Batch Admin)中使用Spring Oxm时,如何覆盖castor jar中的castor.properties?

在您提到的链接search locations中对其进行了一般描述:

Castor按以下顺序加载castor.properties:

  1. 来自类路径(通常来自jar文件)
  2. 来自{java.home}/lib (如果存在)
  3. 来自本地工作目录

每个属性文件都会覆盖前一个属性文件。因此,您不必创建一个包含所有属性和值的属性文件,只需提供要更改的属性和值即可。这也意味着您不必接触jar文件中的属性文件。

Castor通常会扫描和加载两种属性文件(带有固定文件名),您可以查看Castor源代码以了解更多详细信息:

  • 缺省属性文件:castor.core.properties,签出源代码属性文件:castor.properties,签出源代码loadUserProperties()

我们通常将castor.properties放在类路径根目录下,这是您的项目的src/目录(如果您使用maven,则在src/main/java/下)。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11506755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档