The problem is that the datasource gets injected directly into the field, but the setter is never called.
You need to move the @Autowired annotation from the field to the setter like so.
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}