DataSourceTransactionManagerAutoConfiguration is checking if a single DataSource candidate is available, but it doesn't declare that it should run after DataSourceAutoConfiguration. This seems to have worked thus far by accident.