我在Spring Batch应用程序中实现自动装配的方式似乎有问题。例如,如果我使用:
public class A{
@Autowired
BeanList beanList;
}
这适用于A类。在这个意义上,beanList返回它应该的值。但是如果来自A类的方法我从另一个类调用一个方法然后具有相同的
@Autowired
BeanList beanList
,beanList返回null。但是自动装配似乎可以在各个步骤中正常工作。我有
答案 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(); }
这是否描述并解决了您的问题?