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'}”“ />
但这不起作用。
答案 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