属性未传递给bean

时间:2018-11-03 03:14:30

标签: java spring spring-batch

在下面的代码中,我的NullPointer的{​​{1}}行有一个private File ratesFile = new File(ratesFilePath);

据我所知,我的属性文件很好,我正在将其很好地导入到myClass.java配置中,并将该属性传递给我的类OK。我的getter和setter方法在我看来也可以。关于为什么我的属性没有传递给班级的任何指示?

Spring Batch 2.1.8

myClass.properties:

.xml

myClass.xml:     

rates_file_path=/opt/rates
rates_file=rates.txt

myClass.java

    <bean id="myClassProps" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:conf/myClass.properties</value>
            </list>
        </property>
        <property name="ignoreUnresolvablePlaceholders" value="true" />
    </bean>


    <bean id="myClass" class="com.stuff.blah.myClass">
        <property name="ratesFilePath" value="${rates_file_path}/${rates_file}" />
    </bean>

1 个答案:

答案 0 :(得分:1)

在您的myClass中,

private File ratesFile = new File(ratesFilePath);

是引发错误的代码。

ratesFilePathratesFile都在调用构造函数时被初始化。

由于ratesFilePath没有任何初始化值,因此将其设置为null

当尝试初始化ratesFile时,它将使用ratesFilePath的{​​{1}}并引发null

要解决此问题,请先将NullPointerException设置为ratesFile

null

在确保路径不是private File ratesFile = null; 之后,在ratesFile的setter方法上设置ratesfilePath

null