spring boot 教程(六)多数据源配置与使用
之前在介绍使用JdbcTemplate的时候使用了单数据源,在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties
文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据
源,下面基于之前的JdbcTemplate例子分别介绍两种多数据源的配置方式。
多数据源配置
创建一个Spring配置类,定义两个DataSource用来读取application.properties
中的不同配置。
如下例子中,主数据源配置为spring.datasource.primary
开头的配置,第二数据源配置
为spring.datasource.secondary
开头的配置。
对应的配置文件如下:
- spring.datasource.primary.url=jdbc:mysql://localhost:3306/test1
- spring.datasource.primary.username=root
- spring.datasource.primary.password=root
- spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver
- spring.datasource.secondary.url=jdbc:mysql://localhost:3306/test
- spring.datasource.secondary.username=root
- spring.datasource.secondary.password=root
- spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver
JdbcTemplate支持
对JdbcTemplate的支持比较简单,只需要为其注入对应的datasource即可,如下例子,
在创建JdbcTemplate的时候分别注入名为primaryDataSource
和secondaryDataSource
的数据源来区分不同的JdbcTemplate。
- @Configuration
- public class DataSourceConfig {
- @Bean(name = "primaryDataSource")
- @Qualifier("primaryDataSource")
- @ConfigurationProperties(prefix="spring.datasource.primary")
- public DataSource primaryDataSource() {
- return DataSourceBuilder.create().build();
- }
- @Bean(name = "secondaryDataSource")
- @Qualifier("secondaryDataSource")
- @Primary
- @ConfigurationProperties(prefix="spring.datasource.secondary")
- 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);
- }
- @Bean(name = "primaryNameJdbcTemplate")
- public NamedParameterJdbcTemplate primaryNameJdbcTemplate(
- @Qualifier("primaryDataSource") DataSource dataSource) {
- return new NamedParameterJdbcTemplate(dataSource);
- }
- @Bean(name = "secondaryNameJdbcTemplate")
- public NamedParameterJdbcTemplate secondaryNameJdbcTemplate(
- @Qualifier("secondaryDataSource") DataSource dataSource) {
- return new NamedParameterJdbcTemplate(dataSource);
- }
- }
在dao里面注入模板就好了
- @Repository
- public class UserDao implements UserServices{
- @Autowired
- @Qualifier("primaryJdbcTemplate")
- private JdbcTemplate jdbcTemplate;
- @Autowired
- @Qualifier("primaryNameJdbcTemplate")
- private NamedParameterJdbcTemplate namedParameterJdbcTemplate_love;
- @Override
- public int add(Users users) {
- return jdbcTemplate.update("insert into users(name, age) values(?, ?)",users.getName(),users.getAge());
- }
- @Override
- public int update(Users users) {
- return jdbcTemplate.update(" update users set name=?,age=? where id=?",users.getName(),users.getAge(),users.getId());
- }
- @Override
- public int delete(int id) {
- // TODO Auto-generated method stub
- return 0;
- }
- @Override
- public Users findUsersById(int id) {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public List<Users> findAccountList() {
- return namedParameterJdbcTemplate_love.query("select *from users",new BeanPropertyRowMapper(Users.class));
- }
- }
spring boot 教程(六)多数据源配置与使用相关推荐
- 13、Spring Boot 2.x 多数据源配置
1.13 Spring Boot 2.x 多数据源配置 完整源码: Spring-Boot-Demos 转载于:https://www.cnblogs.com/Grand-Jon/p/9999779. ...
- Spring Boot 2.x 多数据源配置之 JPA 篇
场景假设:现有电商业务,商品和库存分别放在不同的库 配置数据库连接 app:datasource:first:driver-class-name: com.mysql.cj.jdbc.Driverur ...
- spring boot 教程(三)配置详解
在大部分情况下,我们不需要做太多的配置就能够让spring boot正常运行.在一些特殊的情况下,我们需要做修改一些配置,或者需要有自己的配置属性. Spring Boot 支持多种外部配置方式 这些 ...
- spring boot 中阿里druid 数据源配置及密码加密
方式一: 1.spring.datasource配置 spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql ...
- node在regedit配置哪个位置_Spring Boot 2.x基础教程:Spring Data JPA的多数据源配置
上一篇我们介绍了在使用JdbcTemplate来做数据访问时候的多数据源配置实现.接下来我们继续学习如何在使用Spring Data JPA的时候,完成多数据源的配置和使用. 添加多数据源的配置 先在 ...
- Spring Boot教程(十六):Spring Boot集成shiro
Apache Shiro™是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理.借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到 ...
- 超详细的Spring Boot教程,搞定面试官!
前言 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置 ...
- Spring Boot 2.0 多数据源编程 jdbcUrl is required with driverClassName
转载:https://my.oschina.net/chinesedragon/blog/1647846 Spring Boot 2.0 多数据源编程 在Spring Boot 1.5.x之前,多数据 ...
- Spring Boot教程系列(ImportNew )
ImportNew Spring Boot教程系列 SpringBoot (一) :入门篇--http://mp.weixin.qq.com/s/hAJmvrYfS6OehMYVgqpqkw Spri ...
- Spring Boot教程系列 ImportNew
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Impo ...
最新文章
- Python.Scrapy.12-scrapy-source-code-analysis-part-2
- string.format大全
- python中不属于整数类型_哪个选项不是Python语言的整数类型?
- 干货 | 深度学习名词表:57个专业术语加相关资料解析(附论文)
- linux下杀死进程全权讲解
- jQuery - Bootstrap 3 and Youtube in Modal
- Java虚拟机(三)——类加载子系统概述
- 《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:紧凑型切片制作(Server缓存切片)...
- LDA主题模型原理解析与python实现
- windows 系统新建 vue 项目的坑
- 互联网创业公司残酷一幕:全员降薪,裁员凶猛与一夜解散
- 微服务架构:统一身份认证和授权技术解决方案
- ps画画模糊笔刷_大量PS笔刷AI笔刷打包下载(超过1000款笔刷)
- u深度重装系统详细教程_u深度重置用户密码操作步骤
- CAD​自定义快捷键命令
- 尚硅谷数据结构与算法(Java)--14--插入排序
- MSP430之仿真器驱动安装问题
- 消费者需求研究能够解决什么问题
- libgdx开发记录
- K-均值聚类(K-means)