我正在尝试通过控制台输入特定的参数以使作业运行,如下所示:
getBitmapTimeTaken += measureTimeMillis {
bitmap = MediaStore.Images.Media.getBitmap(context.contentResolver, uri)
}
输入参数是inputFileName,其定义为“ ficheroEntrada.csv”,如下所示: https://imgur.com/m2jVoEB
但是我收到此错误:
@Value("#{jobParameters['inputFileName']}")
public void setFileName(final String name) {
inputFileName = name;
}
我是春季补习界的新手,我真的不知道自己在做什么错...
谢谢您的帮助。
答案 0 :(得分:1)
要绑定作业参数,您需要将late binding功能与StepScope
结合使用。
您需要做的是制作将您的setter定义为逐步作用域的bean。在您的情况下,执行此操作的一种典型方法是将项目读取器声明为Bean,并按如下所示传递job参数:
@Bean
@StepScope
public FlatFileItemReader flatFileItemReader(@Value("#{jobParameters['inputFileName']}") String name) {
return new FlatFileItemReaderBuilder<Foo>()
.name("flatFileItemReader")
.resource(new FileSystemResource(name))
// set other properties on the reader
}
答案 1 :(得分:0)
使用Spring,您应该能够使用;WITH cte
AS (SELECT no_test,
Sum(CASE
WHEN quest_cat LIKE 'Type I-%' THEN 1
ELSE 0
END) AS count_quest_I,
Sum(CASE
WHEN quest_cat LIKE 'Type II-%' THEN 1
ELSE 0
END) AS count_quest_II,
Sum(CASE
WHEN quest_cat LIKE 'Type III-%' THEN 1
ELSE 0
END) AS count_quest_III
FROM result
GROUP BY no_test)
INSERT INTO combine_table
SELECT t1.no_test,
t1.NAME,
count_quest_i,
count_quest_ii,
count_quest_iii
FROM m_peserta t1
INNER JOIN cte r
ON r.no_test = t1.no_test
语法和@Value
注释来保留命令行参数。
${}
显然,public void setFileName(@Value("${inputFileName}") final String name) {
inputFileName = name;
}
注释适用于由Spring上下文(Bean)管理(有时是代理)的对象。