博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 2.1.1.RELEASE 多数据源配置与使用
阅读量:7037 次
发布时间:2019-06-28

本文共 2383 字,大约阅读时间需要 7 分钟。

有时候,一个系统的功能,需要两个或两个以上的数据库,

在Spring Boot 中要如何配置? How to?

#primaryprimary.spring.datasource.jdbc-url=jdbc:mysql://localhost:3316/test1primary.spring.datasource.username=rootprimary.spring.datasource.password=rootprimary.spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver#secondarysecondary.spring.datasource.jdbc-url=jdbc:mysql://localhost:3316/test2secondary.spring.datasource.username=rootsecondary.spring.datasource.password=rootsecondary.spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 

新建一个类DataSourceConfig

@Configurationpublic class DataSourceConfig {    @Bean(name = "primaryDataSource")    @Qualifier("primaryDataSource")    @Primary    @ConfigurationProperties(prefix="primary.spring.datasource")    public DataSource primaryDataSource() {        return DataSourceBuilder.create().build();    }    @Bean(name = "secondaryDataSource")    @Qualifier("secondaryDataSource")    @ConfigurationProperties(prefix="secondary.spring.datasource")    public DataSource secondaryDataSource() {        return DataSourceBuilder.create().build();    }    @Bean(name = "primaryJdbcTemplate")    public JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {        return new JdbcTemplate(dataSource);    }    @Bean(name = "secondaryJdbcTemplate")    public JdbcTemplate secondaryJdbcTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) {        return new JdbcTemplate(dataSource);    }}

 

 

之后在运用的时候,注意@Qualifier

@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublic class ApplicationTests {    @Autowired    @Qualifier("primaryJdbcTemplate")    protected JdbcTemplate jdbcTemplate1;    @Autowired    @Qualifier("secondaryJdbcTemplate")    protected JdbcTemplate jdbcTemplate2;    @Before    public void setUp() {        jdbcTemplate1.update("DELETE  FROM  USER ");        jdbcTemplate2.update("DELETE  FROM  USER ");    }    @Test    public void test() throws Exception {        // 往第一个数据源中插入两条数据        jdbcTemplate1.update("insert into user(id,name,age) values(?, ?, ?)", 1, "aaa", 20);        jdbcTemplate1.update("insert into user(id,name,age) values(?, ?, ?)", 2, "bbb", 30);}}

 

 

java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.

修改application.xml中的数据库的url, 用spring.datasource.jdbc-url,而不是通常使用的spring.datasource.url。 

 

之前用的如下截图,总是报错

 

转载于:https://www.cnblogs.com/qianjinyan/p/10185067.html

你可能感兴趣的文章
RTEMS硬实时操作系统简介
查看>>
k8s基本概念与术语
查看>>
Java监控常用工具 .
查看>>
模拟placeholder
查看>>
框架介绍
查看>>
中间件
查看>>
python 购物车
查看>>
Android之开发杂记(二)
查看>>
hdu1059(多重背包)
查看>>
jQuery基础整理!!
查看>>
检查python模块是否成功安装
查看>>
bzoj 2142 国家集训队试题 礼物
查看>>
Hive 0.12.0安装指南
查看>>
Protocol Buffers十分钟上手:入门示例
查看>>
Scrapy throws ImportError: cannot import name xmlrpc_client
查看>>
主题:让B/S结构的程序也全屏运行
查看>>
使用super关键字
查看>>
silverlight 学习笔记 (三): silverlight中的数据绑定
查看>>
C++ STL 一般总结
查看>>
SQL脚本获取指定数据库的所有用户表记录数
查看>>