JSR 批处理 - 使用 @BatchProperty 注入构造函数

JSR batch - constructor injection using @BatchProperty

我目前正在处理 JSR 批处理作业。我尝试在我的 batchlet 构造函数中注入传入参数。

@Inject
public MyBatchLet(@BatchProperty(name="prop1") String prop1){
    this.myProperty = prop1;
}

这会抛出依赖异常。

Unsatisfied dependency expressed through constructor argument with index 0 of type [java.lang.String]: : No qualifying bean of type [java.lang.String] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.batch.api.BatchProperty(name=)};

我在这里迷路了,如果能帮助我理解这种行为,我将不胜感激。

批次规范仅支持字段注入。因此,您的代码应该更改为将批处理 属性 注入字段。例如,

@Inject
@BatchProperty
private String prop1;

批处理属性名称默认为javaclass字段名称。否则,您可以使用 @BatchProperty(name = "property-name").

指定名称