【发布时间】:2016-01-28 11:19:26
【问题描述】:
我有一个 conf spring 文件中的以下 sn-p:
<bean id="taskletStep" abstract="true" class="org.springframework.batch.core.step.tasklet.TaskletStep">
<property name="jobRepository" ref="jobRepository"/>
<property name="transactionManager" ref="transactionManager"/>
</bean>
<bean id="hello" class="com.techavalanche.batch.PrintTasklet">
<property name="message" value="Hello"/>
</bean>
<bean id="world" class="com.techavalanche.batch.PrintTasklet">
<property name="message" value=" World!"/>
</bean>
<bean id="mySimpleJob" class="org.springframework.batch.core.job.SimpleJob">
<property name="name" value="mySimpleJob" />
<property name="steps">
<list>
<bean parent="taskletStep">
<property name="tasklet" ref="hello"/>
</bean>
<bean parent="taskletStep">
<property name="tasklet" ref="world"/>
</bean>
</list>
</property>
对我来说,以下几点不是很清楚:
<bean parent="taskletStep">
<property name="tasklet" ref="hello"/>
</bean>
taskletStep 它是一个接口,没有任何属性。但是代码工作正常,似乎 ID 为“hello”的 bean 被注入了。因此我问,这是从配置文件将bean实现(id:hello)注入接口bean(id:taskletStep)的标准方式吗?
【问题讨论】: