Spring Boot 2.1.1.RELEASE 多数据源配置与使用

前端之家收集整理的这篇文章主要介绍了Spring Boot 2.1.1.RELEASE 多数据源配置与使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

-url=jdbc:MysqL: primary.spring.datasource.username==--name=MysqL.cj.jdbc.Driver

secondary

secondary.spring.datasource.jdbc-url=jdbc:MysqL:<span style="color: #008000">//<span style="color: #008000">localhost:3316/test2
secondary.spring.datasource.username=<span style="color: #000000">root
secondary.spring.datasource.password=<span style="color: #000000">root
secondary.spring.datasource.driver-<span style="color: #0000ff">class-name=com.MysqL.cj.jdbc.Driver

新建一个类DataSourceConfig

@Bean(name </span>= "primaryDataSource"<span style="color: #000000"&gt;) @Qualifier(</span>"primaryDataSource"<span style="color: #000000"&gt;) @Primary @ConfigurationProperties(prefix</span>="primary.spring.datasource"<span style="color: #000000"&gt;) </span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; DataSource primaryDataSource() { </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; DataSourceBuilder.create().build(); } @Bean(name </span>= "secondaryDataSource"<span style="color: #000000"&gt;) @Qualifier(</span>"secondaryDataSource"<span style="color: #000000"&gt;) @ConfigurationProperties(prefix</span>="secondary.spring.datasource"<span style="color: #000000"&gt;) </span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; DataSource secondaryDataSource() { </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; DataSourceBuilder.create().build(); } @Bean(name </span>= "primaryJdbcTemplate"<span style="color: #000000"&gt;) </span><span style="color: #0000ff"&gt;public</span> JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource"<span style="color: #000000"&gt;) DataSource dataSource) { </span><span style="color: #0000ff"&gt;return</span> <span style="color: #0000ff"&gt;new</span><span style="color: #000000"&gt; JdbcTemplate(dataSource); } @Bean(name </span>= "secondaryJdbcTemplate"<span style="color: #000000"&gt;) </span><span style="color: #0000ff"&gt;public</span> JdbcTemplate secondaryJdbcTemplate(@Qualifier("secondaryDataSource"<span style="color: #000000"&gt;) DataSource dataSource) { </span><span style="color: #0000ff"&gt;return</span> <span style="color: #0000ff"&gt;new</span><span style="color: #000000"&gt; JdbcTemplate(dataSource); }

}

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

@RunWith(SpringJUnit4ClassRunner. @Autowired @Qualifier(</span>"primaryJdbcTemplate"<span style="color: #000000"&gt;) </span><span style="color: #0000ff"&gt;protected</span><span style="color: #000000"&gt; JdbcTemplate jdbcTemplate1; @Autowired @Qualifier(</span>"secondaryJdbcTemplate"<span style="color: #000000"&gt;) </span><span style="color: #0000ff"&gt;protected</span><span style="color: #000000"&gt; JdbcTemplate jdbcTemplate2; @Before </span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; setUp() { jdbcTemplate1.update(</span>"DELETE FROM USER "<span style="color: #000000"&gt;); jdbcTemplate2.update(</span>"DELETE FROM USER "<span style="color: #000000"&gt;); } @Test </span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span> test() <span style="color: #0000ff"&gt;throws</span><span style="color: #000000"&gt; Exception { </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; 往第一个数据源中插入两条数据</span> jdbcTemplate1.update("insert into user(id,name,age) values(?,?,?)",1,"aaa",20<span style="color: #000000"&gt;); jdbcTemplate1.update(</span>"insert into user(id,2,"bbb",30<span style="color: #000000"&gt;);

}}

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

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

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

猜你在找的Spring相关文章