报错场景
Mysql 配置主从同步后,想实现读写分离,便引入 Sharding-JDBC ,但在 SpringBoot 集成 Sharding-JDBC 时无法启动。
版本:
SpringBoot: 2.1.6. RELEASE
hikariCP:2.7.9
Sharding-JDBC: 4.0.0-RC1
报错信息
A component required a bean named 'entityManagerFactory' that could not be found.
Action:
Consider defining a bean named 'entityManagerFactory' in your configuration.
Process finished with exit code 1
代码:
spring.shardingsphere.datasource.ds0.type=com.zaxxer.hikari.HikariDataSource
改为:
spring.shardingsphere.datasource.ds0.type=com.alibaba.druid.pool.DruidDataSource
@SpringBootApplication(exclude={DruidDataSourceAutoConfigure.class})
public class RunMain {
public static void main(String[] args) {
SpringApplication.run(RunMain.class);
}
}
原因:
SpringBoot本身具有自动配置,现在自动配置时发生冲突了,那么我们可以将冲突的部分排除掉,即告诉SpringBoot,某个类不用帮我自动配置了