为了容易区分,最好把不同数据库的代码放到不同目录下

1.首先修改 application-druid.yml

druid:
            # 主库数据源
            master:
                url: jdbc:mysql://localhost:3306/ry
                username: root
                password: 123456
            # 从库数据源
            slave:#名称可以自定义,但是要记得代码里保持一致
                enabled: true#这属性不是必须的,但是建议加上,方便切换
                url: jdbc:mysql://localhost:3306/db
                username: root
                password: 123456

2.在DataSourceType类添加数据源枚举

public enum DataSourceType
{
    MASTER,
    SLAVE //和druid.yml文件里保持一致
}

3.在DruidConfig配置读取数据源

@Bean
@ConfigurationProperties("spring.datasource.druid.slave")
@ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
public DataSource slaveDataSource(DruidProperties druidProperties)
{
    DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
    return druidProperties.dataSource(dataSource);
}

4.在DruidConfig类dataSource方法添加数据源

    @Bean(name = "dynamicDataSource")
    @Primary
    public DynamicDataSource dataSource(DataSource masterDataSource)
    {
        Map<Object, Object> targetDataSources = new HashMap<>();
        targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
        setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
        return new DynamicDataSource(masterDataSource, targetDataSources);
    }

5.在需要使用多数据源方法或类上添加@DataSource注解,其中value用来表示数据源

@Service@DataSource(value = DataSourceType.SLAVE)
public class SysUserServiceImpl{
    // 优先级:先方法,后类,如果方法覆盖了类上的数据源类型,以方法的为准,否则以类上的为准
    @Service@DataSource(value = DataSourceType.MASTER)
    public List<SysUser> selectUserList(SysUser user){
        ...
    }    
}

 

posted @ 2021-11-12 14:59 吉良吉影 阅读(3188) 评论(1) 推荐(0) 编辑
摘要: 转自:http://blog.sina.com.cn/s/blog_6a409d870101lwr8.html 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 5 namespace ant_C 6 阅读全文
posted @ 2020-11-03 19:04 吉良吉影 阅读(521) 评论(0) 推荐(0) 编辑
摘要: use rand::Rng; use std::cmp::Ordering; use std::io; fn main() { let guess = rand::thread_rng().gen_range(1, 101);//生成随机数1~100,含左不含右 loop { let mut inp 阅读全文
posted @ 2020-08-28 20:54 吉良吉影 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 自定义附加属性的时候需要注意的点: 建议使用 RegisterAttached(String, Type, Type, PropertyMetadata, ValidateValueCallback) 而不是 RegisterAttached(String, Type, Type, Property 阅读全文
posted @ 2019-11-23 10:17 吉良吉影 阅读(364) 评论(1) 推荐(1) 编辑
摘要: 原因:wpf里 popup不能超过屏幕75%的面积,不知道为什么要这么设置? 修改方法: 阅读全文
posted @ 2018-07-20 17:11 吉良吉影 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 从cefsharp57开始就支持anycpu了,不过需要一些设置: 1.首先要打开*.csprj文件,添加节点 <CefSharpAnyCpuSupport>true</CefSharpAnyCpuSupport> 2.修改app.config文件 3.最后在App.xaml.cs的构造函数里添加: 阅读全文
posted @ 2018-04-12 10:49 吉良吉影 阅读(456) 评论(0) 推荐(0) 编辑
摘要: xp 虚拟机运行WPF程序的时候,有部分控件透明,在这儿有一个可能的解决方案: 关闭系统的硬件加速: 1、 按“WIN” + R 键,在“运行”输入框中输入“dxdiag”; 2、 在“DirectX 诊断工具”对话框,选择“显示”页面,在“DirectX 功能”里点击“禁用”按钮,将“Direct 阅读全文
posted @ 2018-03-28 15:01 吉良吉影 阅读(943) 评论(1) 推荐(0) 编辑
摘要: 前几步和网上其他教程一样的。主要是把.net framework 打包进安装程序里,如果选的是“从与我的应用程序相同的位置下载系统必备组件”,会提示 ERROR: 要在“系统必备”对话框中启用“从与我的应用程序相同的位置下载系统必备组件”,必须将“Microsoft .NET Framework 4 阅读全文
posted @ 2018-01-18 20:15 吉良吉影 阅读(1793) 评论(0) 推荐(0) 编辑
摘要: 记录一下。 阅读全文
posted @ 2017-03-20 20:22 吉良吉影 阅读(1654) 评论(0) 推荐(0) 编辑
摘要: 目前不清楚原因,但是将项目文件放到C盘就可以正常调试运行。记录一下 阅读全文
posted @ 2016-01-05 15:17 吉良吉影 阅读(1336) 评论(1) 推荐(0) 编辑
点击右上角即可分享
微信分享提示