如何在弹簧批处理中使用动态键占位符加载值?

时间:2018-07-11 07:47:46

标签: spring spring-batch

Spring Batch:如果键是根据输入参数动态生成的,那么如何从属性文件中获取值

属性文件内容: my.table.book.bic.code = 11111 my.table.news.bic.code = 22222

春季批处理配置

<属性名称=“ bicCodeValue” value =“#{jobParameters ['inputTable'] +'.bic.code'}” />

其中inputTable是批次的输入参数 inputTable = my.table.book inputTable = my.table.news

我没有从属性文件中获得价值,而不是从属性文件中获得价值,我只获得了代码“ my.table.book.bic.code”中的键。

我只需要在xml文件中更新

<属性名=“ bicCodeValue” value =“#{jobParameters ['inputTable'] +'.bic.code'}”“ />

但这不起作用。

2 个答案:

答案 0 :(得分:0)

您可以注入

的实例
@Autowired
private Environment env;

然后执行以下操作:

env.getProperty("my.table."+inputTable+".book.bic.code")

答案 1 :(得分:0)

根据您的属性,SpEL表达式jobParameters['inputTable']应该返回一个String值,因此您可以尝试在表达式中使用concat方法:

<property name="bicCodeValue" value="#{jobParameters['inputTable'].concat('.bic.code')}" />

有关SpEL的更多详细信息,请参见此处:https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#expressions