Could not autowire. There is more than one bean of 'DataSource' type Could not autowire. There is more than one bean of 'DataSource' type spring spring

Could not autowire. There is more than one bean of 'DataSource' type


Try this it worked for me, use @Primary like this

    @Primary    @Bean(name ="prodDataSource")    @ConfigurationProperties(prefix="spring.datasource")    public DataSource dataSource() {        return DataSourceBuilder.create().build();    }    @Bean(name = "prodJdbc")    public JdbcTemplate prodJdbcTemplate(@Qualifier("prodDataSource") DataSource prodDataSource){         return new JdbcTemplate(prodJdbcTemplate);    }    @Bean(name = "devDataSource")    @ConfigurationProperties(prefix = "spring.datasource.dev")    public DataSource devDataSource() {        return DataSourceBuilder.create().build();    }    @Bean(name = "devJdbc")    public JdbcTemplate devJdbcTemplate(@Qualifier("devDataSource") DataSource devDataSource) {        return new JdbcTemplate(devDataSource);    }

And then use @autowire like this

@Autowired@Qualifier("prodJdbc")private JdbcTemplate prodJdbcTemplate;

I hope this can help you or someone else :)


Please note that Spring Boot autoconfigured beans are not supported 100% yet, see https://youtrack.jetbrains.com/issue/IDEA-139669 for progress and possible workaorunds.


I solved by adding qualifier above the property:

@Autowired@Qualifier("dataSource")private DataSource dataSource;