JBatch:Wildfly 9 上的 BatchProperty 注入

JBatch: BatchProperty injection on Wildfly 9

我刚开始学习 JSR-352 并通过查看教程完成了它。但是我在注入批处理属性时遇到问题: 我的 "myJob.xml" 的重要部分是这个

<job id="myJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
<properties>
    <property name="name" value="MyName"/>
</properties>

使用下面的代码,在 Batchlet 或 Chunk 中获取 属性 是没有问题的:

@Inject
JobContext batchContext;

@Override
public String process() throws Exception {
    Thread.sleep(100);
    String name = batchContext.getProperties().getProperty("name");

但在不同的教程中,我还找到了一种更简单的方法

@Inject
@BatchProperty(name="name")
String name;

但是name的值始终为null。所以注射不起作用。这是我的失败还是我部署批处理应用程序的 wildfly 9.0.1 的问题?

我正在回答我自己的问题 - 希望这对其他 JBatch 初学者有所帮助。

我没有注意到我只能注入在 "batchlet" 标签或 "chunk" 标签内声明的属性(使用 @Inject @BatchProperty)。对于 job-level 或 step-level 上的属性,这不起作用。