mybatis-plus version : 3.4.3.1
spring-boot version : 2.3.5.RELEASE
@Service
public class DynamaicRoutingDataSourceManagerImpl implements IDynamaicRoutingDataSourceManager {
@Autowired
private DataSource dataSource;
@Autowired
private DataSourceCreator dataSourceCreator;
@Override
public DataSource now(String key) {
DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;
return ds.getCurrentDataSources().get(key);
}
@Override
public void add(DataSourceProperty dataSourceProperty) {
DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;
DataSource dataSource = dataSourceCreator.createDataSource(dataSourceProperty);
ds.addDataSource(dataSourceProperty.getPoolName(), dataSource);
}
@Override
public void remove(String key) {
if (now(key) == null) {
return;
}
DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;
ds.removeDataSource(key);
}
}
///如果此时也没有 Entity,使用原生的 JdbcTemplate ,则需要考虑多例模式。
@Scope("prototype")
//这里要考虑多例模式的,并不是 DynamaicRoutingDataSourceManagerImpl

该博客介绍了如何在Spring-Boot 2.3.5.RELEASE中结合MyBatis-Plus 3.4.3.1实现动态数据源管理。`DynamaicRoutingDataSourceManagerImpl`服务类展示了如何获取、添加和删除数据源,确保在没有特定实体类的情况下,仍能使用JdbcTemplate进行操作。文章强调了在多例模式下正确管理数据源的重要性。
657

被折叠的 条评论
为什么被折叠?



