场景 多租户下使用动态数据源
多租户环境下,需要动态创建数据源,同时也需要根据租户标识动态切换数据源。每个租户都有一个dataSource。
1.创建数据源
首先需要自己写一个创建datasource bean的工具类。以下代码仅供参考。
public class DataSourceBeanCreator {
/**
* 根据模板数据源生成知道bean name的数据源
* @param beanName 需要生成的bean名称
* @param templateBeanName 模板bean的name
* @param dsProperties 数据库属性
*/
public static void registerBeanFromTemplate(String beanName,String templateBeanName,Map dsProperties){
SpringBeanContainer container = (SpringBeanContainer) BeanContainerFactory.getBeanContainer(DataSourceBeanCreator.class.getClassLoader());
ConfigurableApplicationContext configurableApplicationContext= (ConfigurableApplicationContext) container.getBeanContainerPrototype();
DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) configurableApplicationContext.getBe