jag*_*lan 9 java spring spring-batch
我的应用程序中有一个 Spring Batch tasklet,如下所示。
@Service
public class SampleTasklet implements Tasklet {
@Autowired
private UserService userService;
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
System.err.println(userService.getUsers().size());
return RepeatStatus.FINISHED;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个服务类如下。
@Service
@Slf4j
public class UserService {
public Map<String, String> getUsers(){
return null
}
}
Run Code Online (Sandbox Code Playgroud)
Spring Boot 类:
@SpringBootApplication
@Slf4j
public class SampleBatchApp {
public static void main(String[] args) {
log.info("Custom DAM Batch Application starting");
SpringApplication.run(SampleBatchApp.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
Spring Batch File:——根据评论编辑。
@Configuration
@EnableBatchProcessing
public class SampleBatch {
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Autowired
public SampleTasklet sampleTasklet;
@Bean
public Job importUserJob() {
return jobBuilderFactory.get("importUserJob")
.start(step1())
.build();
}
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet(sampleTasklet)
.build();
}
}
Run Code Online (Sandbox Code Playgroud)
当我启动我的应用程序时,出现如下错误。
Field userService in SampleTasklet required a bean of type 'UserService' that could not be found.
你能解释一下这种奇怪的行为吗?我试过在多个地方寻找这个,我认为我们不能在 tasklet 中 @autowire 一个服务类。我对么?
好的,我发现了错误。
在您的Java Config 中SampleBatch声明您的 Bean SampleTasklet。这意味着您必须确保注入所有依赖项。这就是为什么你没有得到UserService自动装配。
确保 UserService 被设置在
@Bean
public SampleTasklet sampleTasklet(UserService userService){
return new SampleTasklet(userService);
}
Run Code Online (Sandbox Code Playgroud)
并且不要忘记在您中添加此构造函数SampleTasklet并在那里分配 UserService 。
public class SampleTasklet implements Tasklet {
private UserService userService;
public SampleTasklet (UserService userService){
this.userService=userService;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6891 次 |
| 最近记录: |