我只使用注释驱动的配置,没有 XML hell ,包括一个 spring batch 应用程序到我的基于 spring mvc rest 的应用程序。
spring-batch的配置文件是这样开头的:
@Configuration
@EnableBatchProcessing
public class BatchConfig {
@Autowired
JobBuilderFactory jobBuilderFactory;
@Autowired
StepBuilderFactory stepBuilderFactory;
[...]
IntelliJ 在这些 bean 上做了标记,告诉我它无法 Autowiring ,因为没有找到“JobBuilderFactory”/“StepBuilderFactory”类型的 bean。据我所知,注释 @EnableBatchProcessing
应该使这些 bean 可用。
应用程序确实可以编译,所以似乎包含了 spring-batch。在我的 pom.xml 中,我添加了
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-core</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
我可以在同一文件中 Autowiring 其他 bean(private Environment 环境
),因此 Autowiring 本身可以工作。我需要哪些步骤才能找到解决方案?它可能只是编译时的 Intellij 问题吗?
最佳答案
EnableBatchProcessing注解需要和@Configration一起添加
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
}
关于不包括 Spring Batch 默认 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27503947/