0

我有这个配置:

<bean id="reader" class="com.company.MyReader" scope="prototype">
    <property name="dataSource" ref="dataSource"/>
    <property name="sql" value="select * from dummy"/>
    <property name="rowMapper" ref="rowMapper"/>
    <property name="verifyCursorPosition" value="false"/>
</bean>

<bean id="rowMapper" class="com.company.MyRowMapper>
    <property name="firstName" value="hillary/>
</bean>

MyRowMapper 实现org.springframework.jdbc.core.RowMapper

MyReader 扩展了org.springframework.batch.item.database.JdbcCursorItemReader

在 MyReader 中,调用 super.doRead(),这将返回 MyRowMapper 对象。然而,这些对象并没有被容器自动装配——属性 firstName 返回为空。请注意,MyReader 正在按预期由 Spring 容器自动装配。

需要做什么才能自动装配 RowMapper?

非常感谢!

4

1 回答 1

1

您是否已注释 MyReader 以通知 Spring 它需要 MyRowMapper 的实例?

     public class com.company.MyReader{

        @Autowired
        private MyRowMapper mapper;


        public void setMyRowMapper(MyRowMapper newMapper){
            this.mapper = newMapper;
        }
    }
于 2012-08-30T13:09:26.333 回答