弹簧批次中的弹簧自动装配问题

时间:2015-08-25 13:50:07

标签: java spring

我在Spring Batch应用程序中实现自动装配的方式似乎有问题。例如,如果我使用:

public class A{

@Autowired
BeanList beanList;
}

这适用于A类。在这个意义上,beanList返回它应该的值。但是如果来自A类的方法我从另一个类调用一个方法然后具有相同的

@Autowired
BeanList beanList

,beanList返回null。但是自动装配似乎可以在各个步骤中正常工作。我有

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解了你的问题。我想,你有这样的事情:

public class A{

    B aB;

    @Autowired
    BeanList beanList;

    public void callToB() { aB.aMethod(); }
}

public class B {
    @Autowired
    BeanList beanList;

    public void aMethod() {Assert.notNull(beanList);}
}

如果这是正确的,那么问题很可能是你没有将B类实例化为" spring bean"。

最简单的方法是使用@Component标记B类,并将其自动装入A类。

public class A {

    @Autowired
    B aB;

或直接在A类中使用@Bean进行实例化

@Component
public class A {

    @Autowired
    BeanList beanList;

    @Bean
    B myBean() {return new B();}

    public void callToB() { myBean().aMethod(); }

这是否描述并解决了您的问题?

相关问题