PAA*_*PAA 3 java spring-batch sonarqube
我开发了Spring Boot-Batch代码并sonarlint/Sonar-Qube给出了以下错误。我浏览了该链接,但根据此链接无法理解解决方案:https : //rules.sonarsource.com/java/tag/spring/RSPEC-3305。
将此字段值直接注入“studentStepOne”,这是唯一使用它的方法。
代码:
@Configuration
@PropertySource("classpath:application.properties")
public class StudentJob {
@Value( "${spring.chunk.size}")
private String chunkSize;
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Autowired
private JdbcCursorItemReader<Student> StudentReader;
@Autowired
private ItemProcessor<Student, Student> StudentProcessor;
@Autowired
private StudentWriter StudentWriter;
@Bean
public StudentStepExecuListner StudentStepExecuListner() {
return new StudentStepExecuListner();
}
@Bean("readStudentJob")
@Primary
public Job readStudentJob() {
return jobBuilderFactory.get("readStudentJob")
.incrementer(new RunIdIncrementer())
.start(StudentStepOne())
.build();
}
@Bean
public Step StudentStepOne() {
return stepBuilderFactory.get("StudentStepOne")
.<Student, Student>chunk(Integer.parseInt(chunkSize))
.reader(StudentReader)
.processor(StudentProcessor)
.writer(StudentWriter)
.listener(StudentStepExecuListner())
.build();
}
}
Run Code Online (Sandbox Code Playgroud)
根据链接,它似乎不言自明:
这意味着对仅在单个 @Bean 方法中使用的依赖项使用参数注入而不是字段注入。
所以对于你的工作,像这样实例化它:
@Bean("readStudentJob")
@Primary
public Job readStudentJob(Step StudentStepOne) {
return jobBuilderFactory.get("readStudentJob")
.incrementer(new RunIdIncrementer())
.start(StudentStepOne)
.build();
}
Run Code Online (Sandbox Code Playgroud)
无关,但您应该遵循 java 约定。方法应该使用驼峰命名法。StudentStepOne()应该studentStepOne()
| 归档时间: |
|
| 查看次数: |
3457 次 |
| 最近记录: |