Spring Boot 2.1.1.RELEASE 多数据源配置与使用
发布时间:2020-12-15 01:51:38 所属栏目:大数据 来源:网络整理
导读:有时候,一个系统的功能,需要两个或两个以上的数据库, 在Spring Boot 中要如何配置? How to? -url=jdbc:mysql: primary.spring.datasource.username= = - -name= secondary secondary.spring.datasource.jdbc -url=jdbc:mysql:span style="color: #008000
有时候,一个系统的功能,需要两个或两个以上的数据库, 在Spring Boot 中要如何配置? How to? -url=jdbc:mysql:
primary.spring.datasource.username==--name=secondary
secondary.spring.datasource.jdbc -url=jdbc:mysql:<span style="color: #008000">//<span style="color: #008000">localhost:3316/test2secondary.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">)
@Qualifier(</span>"primaryDataSource"<span style="color: #000000">)
@Primary
@ConfigurationProperties(prefix</span>="primary.spring.datasource"<span style="color: #000000">)
</span><span style="color: #0000ff">public</span><span style="color: #000000"> DataSource primaryDataSource() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> DataSourceBuilder.create().build();
}
@Bean(name </span>= "secondaryDataSource"<span style="color: #000000">)
@Qualifier(</span>"secondaryDataSource"<span style="color: #000000">)
@ConfigurationProperties(prefix</span>="secondary.spring.datasource"<span style="color: #000000">)
</span><span style="color: #0000ff">public</span><span style="color: #000000"> DataSource secondaryDataSource() {
</span><span style="color: #0000ff">return</span><span style="color: #000000"> DataSourceBuilder.create().build();
}
@Bean(name </span>= "primaryJdbcTemplate"<span style="color: #000000">)
</span><span style="color: #0000ff">public</span> JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource"<span style="color: #000000">) DataSource dataSource) {
</span><span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span><span style="color: #000000"> JdbcTemplate(dataSource);
}
@Bean(name </span>= "secondaryJdbcTemplate"<span style="color: #000000">)
</span><span style="color: #0000ff">public</span> JdbcTemplate secondaryJdbcTemplate(@Qualifier("secondaryDataSource"<span style="color: #000000">) DataSource dataSource) {
</span><span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span><span style="color: #000000"> JdbcTemplate(dataSource);
}
} 之后在运用的时候,注意@Qualifier @RunWith(SpringJUnit4ClassRunner.
@Autowired
@Qualifier(</span>"primaryJdbcTemplate"<span style="color: #000000">)
</span><span style="color: #0000ff">protected</span><span style="color: #000000"> JdbcTemplate jdbcTemplate1;
@Autowired
@Qualifier(</span>"secondaryJdbcTemplate"<span style="color: #000000">)
</span><span style="color: #0000ff">protected</span><span style="color: #000000"> JdbcTemplate jdbcTemplate2;
@Before
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setUp() {
jdbcTemplate1.update(</span>"DELETE FROM USER "<span style="color: #000000">);
jdbcTemplate2.update(</span>"DELETE FROM USER "<span style="color: #000000">);
}
@Test
</span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> test() <span style="color: #0000ff">throws</span><span style="color: #000000"> Exception {
</span><span style="color: #008000">//</span><span style="color: #008000"> 往第一个数据源中插入两条数据</span>
jdbcTemplate1.update("insert into user(id,name,age) values(?,?,?)",1,"aaa",20<span style="color: #000000">);
jdbcTemplate1.update(</span>"insert into user(id,2,"bbb",30<span style="color: #000000">);
}} java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName. 修改application.xml中的数据库的url, 用spring.datasource.jdbc-url,而不是通常使用的spring.datasource.url。? 之前用的如下截图,总是报错 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |