Spring batch StateVentitemWriter XML头
我正在使用StatxeventitemWriter写入XML文件。我希望将xml标记上的standalone属性设置为true。是否有任何选项来设置它Spring batch StateVentitemWriter XML头,spring-batch,Spring Batch,我正在使用StatxeventitemWriter写入XML文件。我希望将xml标记上的standalone属性设置为true。是否有任何选项来设置它 您可以扩展StateEventItemWriter并重写该方法。以下是一个例子: @Bean public StaxEventItemWriter<Person> itemWriter() { StaxEventItemWriter<Person> itemWriter = new StaxEventItemWri
您可以扩展StateEventItemWriter
并重写该方法。以下是一个例子:
@Bean
public StaxEventItemWriter<Person> itemWriter() {
StaxEventItemWriter<Person> itemWriter = new StaxEventItemWriter<Person>() {
@Override
protected void startDocument(XMLEventWriter writer) throws XMLStreamException {
writer.add(createXmlEventFactory().createStartDocument(DEFAULT_ENCODING, DEFAULT_XML_VERSION, true));
writer.add(xmlEventFactory.createStartElement(getRootTagNamespacePrefix(), getRootTagNamespace(), getRootTagName()));
}
};
// TODO set other properties on the writer
return itemWriter;
}
@Bean
public StatexEventItemWriter itemWriter(){
statxeventitemwriter itemWriter=新的statxeventitemwriter(){
@凌驾
受保护的void startDocument(XMLEventWriter编写器)引发XMLStreamException{
add(createXmlEventFactory().createStartDocument(默认编码,默认XML版本,true));
add(xmlEventFactory.createStartElement(getRootTagNamespacePrefix(),getRootTagNamespace(),getRootTagNamespace());
}
};
//TODO设置写入程序的其他属性
返回项目编写器;
}
statxeventitemwriter已经为版本
和编码
属性提供了setter,因此我相信它还可以为独立
提供setter。这将使定制XML声明比必须扩展编写器和重写startDocument
更容易(如果我们忘记添加根元素,这种方法很容易出错,如答案所示)。我在此处创建了一个功能请求:。同时,你可以在答案中使用这个例子。这个听起来很完美,我切换回jaxb,同时,我会检查这个