3 回答

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

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
在@Configuration類中,spring 將讀取該類,嘗試引用所有存在的 bean。因此,如果您只想在方法中引用一個(gè) bean,而不在方法之間共享,則不需要連接到類屬性中。只需在您的方法構(gòu)造函數(shù)中接收。
@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 會自動設(shè)置 bean。

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