从平面文件项编写器中提取特定属性

时间:2016-05-27 15:27:42

标签: java spring spring-batch

我有一个从项目处理器返回的对象。

  public class PcdRateMapper
{
    private Pcdrate pcdRate;
    private Boolean isValidPcdRate;

    public PcdRateMapper ()
    {
        // pcdRate = new Pcdrate ();
    }

    public Pcdrate getPcdRate ()
    {
        return pcdRate;
    }

    public void setPcdRate (Pcdrate pcdRate)
    {
        this.pcdRate = pcdRate;
    }

    public Boolean getIsValidPcdRate ()
    {
        return isValidPcdRate;
    }

    public void setIsValidPcdRate (Boolean isValidPcdRate)
    {
        this.isValidPcdRate = isValidPcdRate;
    }

现在我想在我的项目编写器中仅提取Pcdrate对象值。我怎样才能做到这一点。目前我使用以下弹簧配置但获得无效的属性异常。提前谢谢。

<

property name="lineAggregator">
            <bean
                class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
                <property name="delimiter" value="," />
                <property name=""></property>
                <property name="fieldExtractor">
                    <bean


    class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                            <property name=""></property>
                            <property name="names"
                                value="company, subcoy" />
                        </bean>
                    </property>
                </bean>
                </property>

1 个答案:

答案 0 :(得分:1)

无效属性异常可能源于

 <property name=""></property>

其中属性名称是空字符串。你在上面的代码中有两次,删除它。

您的xml结构似乎无效,请参阅spring_bean_definition 看它应该是什么样子。

在BeanWrapperFieldExtractor类型的bean上,您必须将属性“names”设置为您想要extraxt的属性的名称,在您的情况下为“pcdRate”。

它应该像这样配置:

 <bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
    <property name="names" value="pcdRate" />
 </bean>