У меня настроен следующий супербаз c bean:
@Bean
@JobScope
public JobState jobState() {
return new JobState();
}
public static class JobState {
public final Map<String, PathData> paths = new HashMap<>();
}
public static class PathData {
public final Path path;
public final boolean downloaded;
public PathData(final Path path, final boolean downloaded) {
this.path = path;
this.downloaded = downloaded;
}
}
Затем, где-то еще в моем коде, у меня есть фабрика тасклетов, например:
@Bean
public Function<DownloadConfig, Tasklet> downloadTaskletFactory(final JobState jobState) {
return config ->
(contribution, chunkContext) -> {
// [...]
jobState.paths.put(...);
};
}
Однако, когда это выполняется, в то время как jobState
не является null
, jobState.paths
является. Я не уверен, как именно это было бы возможно, если Spring полностью не заменит мой JobState
класс на макет или что-то в этом роде?