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")
.
指定名称
我目前正在处理 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")
.