18.3. 批量属性注入
JBoss EAP batch-jberet 子系统的一项功能是能够让作业 XML 文件中定义的属性,注入到批处理工件类中的字段。可以利用 @Inject 和 @ BatchProperty 注释,将作业 XML 文件中定义的属性注入到字段中。
inject 字段可以是以下任一 Java 类型:
-
java.lang.String -
java.lang.StringBuilder -
java.lang.StringBuffer 任何原语类型及其打包程序类型:
-
布尔值,布尔值 -
int,Integer -
double,Double -
长,长 -
Char、character -
浮点值,Float -
Short -
字节,Byte
-
-
java.math.BigInteger -
java.math.BigDecimal -
java.net.URL -
java.net.URI -
java.io.File -
java.util.jar.JarFile -
java.util.Date -
java.lang.Class -
java.net.Inet4Address -
java.net.Inet6Address -
java.util.List,List<?>, List<String> -
java.util.Set,Set<?>, Set<String> -
java.util.Map,Map<?, ?>,Map<String, String>,Map<String, ?> -
java.util.logging.Logger -
java.util.regex.Pattern -
javax.management.ObjectName
还支持以下数组类型:
-
java.lang.String[] 任何原语类型及其打包程序类型:
-
boolean[],Boolean[] -
int[]、Integer[] -
double[],Double[] -
长[]、Long[] -
char[]、Character[] -
float[],Float[] -
short[],Short[] -
字节[]、Byte[]
-
-
java.math.BigInteger[] -
java.math.BigDecimal[] -
java.net.URL[] -
java.net.URI[] -
java.io.File[] -
java.util.jar.JarFile[] -
java.util.zip.ZipFile[] -
java.util.Date[] -
java.lang.Class[]
下面是使用批处理属性注入的一些示例:
将数字注入到批处理类中,作为各种类型
示例:作业 XML 文件
<batchlet ref="myBatchlet">
<properties>
<property name="number" value="10"/>
</properties>
</batchlet>
<batchlet ref="myBatchlet">
<properties>
<property name="number" value="10"/>
</properties>
</batchlet>
示例:Artifact Class
将数字序列注入到批处理类中,作为各种阵列
示例:作业 XML 文件
<batchlet ref="myBatchlet">
<properties>
<property name="weekDays" value="1,2,3,4,5,6,7"/>
</properties>
</batchlet>
<batchlet ref="myBatchlet">
<properties>
<property name="weekDays" value="1,2,3,4,5,6,7"/>
</properties>
</batchlet>
示例:Artifact Class
将类属性注入批处理类
示例:作业 XML 文件
<batchlet ref="myBatchlet">
<properties>
<property name="myClass" value="org.jberet.support.io.Person"/>
</properties>
</batchlet>
<batchlet ref="myBatchlet">
<properties>
<property name="myClass" value="org.jberet.support.io.Person"/>
</properties>
</batchlet>
示例:Artifact Class
为属性注入注解的字段分配默认值
如果作业 XML 文件中未定义目标批处理属性,您可以为工件 Java 类中的字段分配默认值。如果将 target 属性解析为有效的值,它将注入到该字段;否则,不会注入值,并使用默认的字段值。
示例:Artifact Class