3 回答

TA貢獻1784條經驗 獲得超8個贊
根據鏈接,它似乎是不言自明的:
這意味著對僅在單個 @Bean 方法中使用的依賴項使用參數注入而不是字段注入。
所以對于你的工作,像這樣實例化它:
@Bean("readStudentJob") @Primary public Job readStudentJob(Step StudentStepOne) { return jobBuilderFactory.get("readStudentJob") .incrementer(new RunIdIncrementer()) .start(StudentStepOne) .build(); }
無關,但你應該遵循 java 約定。方法應該使用駝峰命名法。StudentStepOne()
應該studentStepOne()

TA貢獻1802條經驗 獲得超6個贊
在@Configuration類中,spring 將讀取該類,嘗試引用所有存在的 bean。因此,如果您只想在方法中引用一個 bean,而不在方法之間共享,則不需要連接到類屬性中。只需在您的方法構造函數中接收。
@Bean
public Step StudentStepOne(StepBuilderFactory stepBuilderFactory) {
return stepBuilderFactory.get("StudentStepOne")
.<Student, Student>chunk(Integer.parseInt(chunkSize))
.reader(StudentReader)
.processor(StudentProcessor)
.writer(StudentWriter)
.listener(StudentStepExecuListner())
.build();
}
spring 會自動設置 bean。

TA貢獻1893條經驗 獲得超10個贊
下面的答案將幫助你。
private StepBuilderFactory stepBuilderFactory;
@Autowired
public void setStepBuilderFactory(StepBuilderFactory stepBuilderFactory) {
this.stepBuilderFactory= stepBuilderFactory;
}
您可以使用 setter 注入,而不是實施字段注入。不推薦現場注入。
添加回答
舉報