Spring batch 定制spring批处理项目平面编写器

Spring batch 定制spring批处理项目平面编写器,spring-batch,Spring Batch,我有一个可以创建平面文件的spring批处理程序,但我希望能够将标签放到字段中 这是我的Pojo示例学生 public class Student{ private String studentName; private double gpa; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studen

我有一个可以创建平面文件的spring批处理程序,但我希望能够将标签放到字段中

这是我的Pojo示例学生

public class Student{

private String studentName;
private double gpa;


public String getStudentName() {
    return studentName;
}

public void setStudentName(String studentName) {
    this.studentName = studentName;
}

public double getGpa() {
    return dob;
}

public void setGpa(double gpa) {
    this.gpa= gpa;
}
这是我的划行器

public class StudentRowMapper implements RowMapper<Student>{

@Override
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {

    Student student= new Student();
    student.setStudentName(rs.getString("student_name"));
    student.setGpa(rs.getDouble("gpa"));

    return student;
} 
我希望能够将coustme前缀添加到每个字段,我希望能够编写一个平面文件,其中

name=Rita Paul|gpa=3.8|
name=Han Yanagata|gpa=3.0|

在行映射器中,您可以通过

public class StudentRowMapper implements RowMapper<Student>{

@Override
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {

    Student student= new Student();
    student.setStudentName("name="+rs.getString("student_name"));
    student.setGpa("gpa="+rs.getDouble("gpa"));

    return student;
} 
公共类StudentRowMapper实现了RowMapper{
@凌驾
public Student mapRow(结果集rs,int rowNum)引发SQLException{
学生=新生();
student.setStudentName(“name=“+rs.getString(“student_name”));
student.setGpa(“gpa=“+rs.getDouble(“gpa”));
留学生;
} 

编写一个定制的
线性聚合器
,这很简单。GPA是一个双精度的,你不能只加上“GPA=”无论如何,你要把它写进文件中。所以学生的所有成员变量都可以作为字符串变量。我觉得问题是,如果以后我想应用业务逻辑,比如说添加一个项目处理器来过滤低于3.0的GPA,我将无法提取。然后在处理完成后将其添加到处理器级别或者您可以编写自己的FlatFilewriter,或者正如Luca Basso Ricci所说的,您可以编写自己的自定义行聚合器。
name=Rita Paul|gpa=3.8|
name=Han Yanagata|gpa=3.0|
public class StudentRowMapper implements RowMapper<Student>{

@Override
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {

    Student student= new Student();
    student.setStudentName("name="+rs.getString("student_name"));
    student.setGpa("gpa="+rs.getDouble("gpa"));

    return student;
}