Recibo DataSource no compatible cuando uso DataSouceBuilder

Soy nuevo en Spring-Batch (y Spring en general), y he estado siguiendo la documentación en línea para enseñarme lo que necesito para hacer esta tarea. Estoy intentando conectarme a una base de datos DB2.

Si declaro la conexión de DB2 con XML de esta manera:

    <bean id="wcs_dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver" />
    <property name="url" value="jdbc:db2://127.0.0.1/DEV" />
    <property name="username" value="user" />
    <property name="password" value="pass5" />
</bean>

Luego cárgalo en mi código así:

@Bean
    public JdbcCursorItemReader<Product> databaseItemReader() {             
        ApplicationContext context = 
                 new ClassPathXmlApplicationContext("context-datasource.xml");
        DataSource dataSource = (DataSource) context.getBean("wcs_dataSource");
        ((ConfigurableApplicationContext)context).close();

        JdbcCursorItemReader<Product> result = new JdbcCursorItemReader<Product>();
        result.setDataSource(dataSource);
        result.setSql(sqlString);
        result.setRowMapper(new ProductRowMapper());
        return result;
    }

Funciona perfectamente Cómo quisiera usar DataSourceBuilder como muestran los ejemplos, así que en última instancia me gustaría llegar a:

@ConfigurationProperties(prefix="DEV.datasource")
public DataSource Wcs_DataSource(){
  return DataSourceBuilder.create().build();
}

Pero por alguna razón eso no funciona. yo obtengo

Causado por: java.lang.IllegalStateException: no se encontró ningún tipo de DataSource compatible

También he intentado:

public DriverManagerDataSource dataSource() {               
    DataSourceBuilder DSBuilder = DataSourceBuilder.create();   
    DSBuilder.url("jdbc:db2://127.0.0.1/DEV");
    DSBuilder.username("user");
    DSBuilder.password("password");
    DSBuilder.driverClassName("com.ibm.db2.jcc.DB2Driver");
    DriverManagerDataSource result = (DriverManagerDataSource) DSBuilder.build();
    return result;      
}

Y me sale el mismo error. Si lo ejecuto en el depurador, puedo ver que el error ocurre en .build ().

Estoy seguro de que me falta algo fácil, pero no puedo entenderlo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta