5

我在 Spring Batch 示例中随处可见标签所在的位置(即<job></job>)。但是在我的 xml 文件中,我必须包含“批处理”。例如<batch:job></batch:job>

这是为什么?那是版本的事情吗?我想通过删除 batch: 来减少标签,如果可能的话。

4

2 回答 2

9

batch是命名空间的 XML 文件中的别名http://www.springframework.org/schema/batch。在您的 XML 开始时,您将拥有类似的内容:

xmlns:batch="http://www.springframework.org/schema/batch" 

这意味着,每当您为元素添加前缀时batch:,您都在指定该元素是 Spring 定义的元素。<job>这对于消除可能的歧义是必要的(围绕定义元素可能还有其他框架)。

可以为 XML 文档中的所有元素定义一个默认名称空间,这样如果没有名称空间前缀,它将是声明所引用的名称空间。这个默认命名空间是用xmlns="..."属性定义的,通常分配给http://www.springframework.org/schema/beans命名空间(<beans>元素和更多基本类型所在的位置)。

您可以:

1)换成batch更短的东西,比如b如果你想清理

<beans ... xmlns:b="http://www.springframework.org/schema/batch">
    ...
    <b:job></b:job>
    ...
</beans>

2)创建batch默认命名空间(带xmlns="http://www.springframework.org/schema/batch")并beans在需要时使用命名空间和其他名称。您甚至可以在一个单独的 xml 文件中声明所有批处理元素,并使用此命名空间作为默认名称,并将<beans:import>其放在您的 main applicationContext.xml.

<beans:beans xmlns="http://www.springframework.org/schema/batch" 
     xmlns:beans="http://www.springframework.org/schema/beans">

    <job>...</job>
    <job>...</job>

</beans:beans>
于 2013-07-09T15:35:50.257 回答
0

您可以将 xmlns="http://www.springframework.org/schema/batch" 添加到根元素并避免使用前缀,例如:

<flow id="flowId" xmlns="http://www.springframework.org/schema/batch"><step id=""/><step id=""/></flow>
于 2015-03-06T15:49:37.167 回答