Я следую руководству по Spring Batch, и когда я пишу следующий код, IntelliJ жалуется, что вызов tasklet (null) в функции задания вызывается напрямую:
Method annotated with @Bean is called directly. Use dependency injection instead.
Я могу получить ошибка go исчезнет, если я удалю аннотацию @Bean из задания, но я хочу знать, что происходит. Как я могу ввести туда фасоль? Простое написание tasklet(Tasklet tasklet(null))
дает ту же ошибку.
@Bean
@StepScope
public Tasklet tasklet(@Value("#{jobParameters['name']}") String name) {
return ((contribution, chunkContext) -> {
System.out.println(String.format("This is %s", name));
return RepeatStatus.FINISHED;
});
}
@Bean
public Job job() {
return jobBuilderFactory.get("job")
.start(stepBuilderFactory.get("step1")
.tasklet(tasklet(null)) // tasklet(null) = problem
.build())
.build();
}
asd