我搜索如何将springboot参数传递给spring批处理作业的解决方案,然后在我的Writer中获得参数的值。当我在writer中加载键时,键仍然为空。有人能帮帮我吗?
@GetMapping("/load/{id}")
public BatchStatus load (@PathVariable String id) throws
JobExecutionException {
JobParameters jobParameters = new JobParametersBuilder()
.addLong("time", System.currentTimeMillis())
.addString("key", id).toJobParameters();
JobExecution jobExecution = jobLauncher.run(job, jobParameters);
return jobExecution.getStatus();
}
下面是我的批处理代码配置
@Configuration
@Value("${path.to.react.file}")
private Resource resource;
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Autowired
UserDao userDao;
@Value("#{jobParameters['key']}")
private String pathToFile;
@Bean
public Job job() {
return jobBuilderFactory.get("readCSVFilesJob")
.incrementer(new RunIdIncrementer())
.start(step())
.build();
}
@Bean
public Step step() {
return stepBuilderFactory.get("step1").<UserDTO,
UserDTO>chunk(100)
.reader(Reader.reader(resource))
.processor(new Processor())
.writer(new Writer(userDao))
.build();
}
}
还有我的作家
@StepScope
public class Writer implements ItemWriter<UserDTO> {
private UserDao userDao;
@Value("#{jobParameters['key']}")
private String key;
public Writer(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void write(List<? extends UserDTO> items) throws Exception {
userDao.writePnoFile(items);
}
}
将@scope(“step”)
添加到编写器中,然后通过@value
注释注入参数:
@Value("#{jobParameters['key']}")
String key;
问题内容: 我已经编写了这个jQuery ajax方法,在下面调用了webmethod。除了作为用户对象的参数具有空字段之外,调用进行得很好。我在调试时可以在firebug中看到值,但它们无法通过webmethod中的User对象参数 我试图从jQuery方法传递给Webmethod的两个值是“ UserID”(Guid)和“ About”(字符串),它们都是User类的属性,但在服务端,是Use
...下面的类是骆驼处理器,它最终被调用: 我知道Apache CXF使用的Exchange类与Camel使用的Exchange不同,但是这两种集成技术之间应该有一种传递信息的方式?
我试图将一个参数从命令行传递到java类。我关注了这篇文章:http://gradle.1045684.n5.nabble.com/gradle-application-plugin-question-td5539555.html,但是代码对我来说不起作用(也许它不适合JavaExec?)。以下是我所尝试的: 上面硬编码的args值的输出是: 任何关于如何将命令行参数传递给gradle的指针都很感
问题内容: 我想将值传递给javascript。如果可能的话,我该怎么办?如何在后备bean中接收它们? 问题答案:
问题内容: 我们已经设置了一些参数来在Jenkins中执行构建(使用简单的“参数化构建”设置)。作业被设置为Maven测试。有没有办法以编程方式将这些参数传递到我们的Java代码中?我们需要基于通过Jenkins设置的参数来执行某些更新功能。 问题答案: 是的,您可以通过Maven执行将Jenkins参数传递给Java代码,如下所示: 请注意, $ JOB_PARAM_1 将捕获Jenkins上设
问题内容: 我有3个版本:A-是控制流量的主版本B-注释者版本C- 将在BI要向A添加String参数后执行,因此用户将手动输入一些String,但我不确定如何我可以将此参数传递给B吗?可以说这是我的构建流程: build(“ B”)build(“ C”)我不知道如何将参数传递到B,我应该从构建流程还是从B构建配置中做到这一点,我该怎么做。 预先感谢亚历克斯 问题答案: 像这样: https://