Java StaxItemReader读取并打印值

Java StaxItemReader读取并打印值,java,spring-boot,spring-batch,Java,Spring Boot,Spring Batch,我现在正在学习春药。我想使用statxeventitemreader来读取xml文件 所以我只是尝试在java透视图中的独立java文件中使用它和所有必要的spring JAR 我想知道如何确保它是否读取了值以及读取了哪些值。简而言之,我想在控制台中打印读取的值。我如何在独立的java文件中实现它 代码如下: main(){ statxeventitemreader xmlFileReader=新的statxeventitemreader(); setResource(新类路径资源(“/Stud

我现在正在学习春药。我想使用statxeventitemreader来读取xml文件 所以我只是尝试在java透视图中的独立java文件中使用它和所有必要的spring JAR

我想知道如何确保它是否读取了值以及读取了哪些值。简而言之,我想在控制台中打印读取的值。我如何在独立的java文件中实现它

代码如下:
main(){
statxeventitemreader xmlFileReader=新的statxeventitemreader();
setResource(新类路径资源(“/Student.xml”);
setFragmentRootElementName(“标记”);
Jaxb2Marshaller=new Jaxb2Marshaller();
medicareMarshaller.setClassesToBeBound(学生.class);
setUnmarshaller(medicareMarshaller);
System.out.println(xmlFileReader.?);
}
请帮助我了解如何打印读取的值。如果我的内容不清楚,我道歉。提前谢谢

试试下面我的改编代码。 通常,如果您想测试SpringBatch组件,而不将它们实例化为SpringBeans(->通过直接调用der构造函数),那么应该在调用所有set方法之后调用“afterPropertiesSet()”方法

接下来,根据要直接测试的读写器,必须调用reader.open(new ExecutionContext())

之后,您可以调用read()-方法,然后该方法应该一个接一个地返回项

main(){
StaxEventItemReader<Student> xmlFileReader = new StaxEventItemReader<Student>();
xmlFileReader.setResource(new ClassPathResource("/Student.xml"));
xmlFileReader.setFragmentRootElementName("Marks");

Jaxb2Marshaller medicareMarshaller = new Jaxb2Marshaller();
medicareMarshaller.setClassesToBeBound(Student.class);
xmlFileReader.setUnmarshaller(medicareMarshaller);

xmlFileReader.afterPropertiesSet(); // in the case of StaxEventItemReader not really necessary

xmlFileReader.open(new ExecutionContext()); // does some initialisation, so you need to call it

Studen student = null;
while(student = xmlFileReader.read() != null) {
    System.out.println(student...);   
}

xmlFileReader.close();
main(){
statxeventitemreader xmlFileReader=新的statxeventitemreader();
setResource(新类路径资源(“/Student.xml”);
setFragmentRootElementName(“标记”);
Jaxb2Marshaller=new Jaxb2Marshaller();
medicareMarshaller.setClassesToBeBound(学生.class);
setUnmarshaller(medicareMarshaller);
xmlFileReader.AfterPropertieSet();//对于StatxeventitemReader,实际上不需要
xmlFileReader.open(new ExecutionContext());//进行一些初始化,因此需要调用它
Studen-student=null;
while(student=xmlFileReader.read()!=null){
系统输出打印LN(学生…);
}
xmlFileReader.close();

Junit怎么样?通过谷歌搜索“test spring batch program”可以为您提供一些有用的起点。如果您有机会,请尝试查看我在这里发布的另一个帖子
main(){
StaxEventItemReader<Student> xmlFileReader = new StaxEventItemReader<Student>();
xmlFileReader.setResource(new ClassPathResource("/Student.xml"));
xmlFileReader.setFragmentRootElementName("Marks");

Jaxb2Marshaller medicareMarshaller = new Jaxb2Marshaller();
medicareMarshaller.setClassesToBeBound(Student.class);
xmlFileReader.setUnmarshaller(medicareMarshaller);

xmlFileReader.afterPropertiesSet(); // in the case of StaxEventItemReader not really necessary

xmlFileReader.open(new ExecutionContext()); // does some initialisation, so you need to call it

Studen student = null;
while(student = xmlFileReader.read() != null) {
    System.out.println(student...);   
}

xmlFileReader.close();