之前在介绍使用JdbcTemplate的时候使用了单数据源,在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties

文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据

源,下面基于之前的JdbcTemplate例子分别介绍两种多数据源的配置方式。

多数据源配置

创建一个Spring配置类,定义两个DataSource用来读取application.properties中的不同配置。

如下例子中,主数据源配置为spring.datasource.primary开头的配置,第二数据源配置

spring.datasource.secondary开头的配置。

对应的配置文件如下:

  1. spring.datasource.primary.url=jdbc:mysql://localhost:3306/test1
  2. spring.datasource.primary.username=root
  3. spring.datasource.primary.password=root
  4. spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver
  5. spring.datasource.secondary.url=jdbc:mysql://localhost:3306/test
  6. spring.datasource.secondary.username=root
  7. spring.datasource.secondary.password=root
  8. spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver

JdbcTemplate支持

对JdbcTemplate的支持比较简单,只需要为其注入对应的datasource即可,如下例子,

在创建JdbcTemplate的时候分别注入名为primaryDataSourcesecondaryDataSource的数据源来区分不同的JdbcTemplate。

  1. @Configuration
  2. public class DataSourceConfig {
  3. @Bean(name = "primaryDataSource")
  4. @Qualifier("primaryDataSource")
  5. @ConfigurationProperties(prefix="spring.datasource.primary")
  6. public DataSource primaryDataSource() {
  7. return DataSourceBuilder.create().build();
  8. }
  9. @Bean(name = "secondaryDataSource")
  10. @Qualifier("secondaryDataSource")
  11. @Primary
  12. @ConfigurationProperties(prefix="spring.datasource.secondary")
  13. public DataSource secondaryDataSource() {
  14. return DataSourceBuilder.create().build();
  15. }
  16. @Bean(name = "primaryJdbcTemplate")
  17. public JdbcTemplate primaryJdbcTemplate(
  18. @Qualifier("primaryDataSource") DataSource dataSource) {
  19. return new JdbcTemplate(dataSource);
  20. }
  21. @Bean(name = "secondaryJdbcTemplate")
  22. public JdbcTemplate secondaryJdbcTemplate(
  23. @Qualifier("secondaryDataSource") DataSource dataSource) {
  24. return new JdbcTemplate(dataSource);
  25. }
  26. @Bean(name = "primaryNameJdbcTemplate")
  27. public NamedParameterJdbcTemplate primaryNameJdbcTemplate(
  28. @Qualifier("primaryDataSource") DataSource dataSource) {
  29. return new NamedParameterJdbcTemplate(dataSource);
  30. }
  31. @Bean(name = "secondaryNameJdbcTemplate")
  32. public NamedParameterJdbcTemplate secondaryNameJdbcTemplate(
  33. @Qualifier("secondaryDataSource") DataSource dataSource) {
  34. return new NamedParameterJdbcTemplate(dataSource);
  35. }
  36. }

在dao里面注入模板就好了

  1. @Repository
  2. public class UserDao implements UserServices{
  3. @Autowired
  4. @Qualifier("primaryJdbcTemplate")
  5. private JdbcTemplate jdbcTemplate;
  6. @Autowired
  7. @Qualifier("primaryNameJdbcTemplate")
  8. private NamedParameterJdbcTemplate namedParameterJdbcTemplate_love;
  9. @Override
  10. public int add(Users users) {
  11. return jdbcTemplate.update("insert into users(name, age) values(?, ?)",users.getName(),users.getAge());
  12. }
  13. @Override
  14. public int update(Users users) {
  15. return jdbcTemplate.update(" update users set name=?,age=? where id=?",users.getName(),users.getAge(),users.getId());
  16. }
  17. @Override
  18. public int delete(int id) {
  19. // TODO Auto-generated method stub
  20. return 0;
  21. }
  22. @Override
  23. public Users findUsersById(int id) {
  24. // TODO Auto-generated method stub
  25. return null;
  26. }
  27. @Override
  28. public List<Users> findAccountList() {
  29. return namedParameterJdbcTemplate_love.query("select *from users",new BeanPropertyRowMapper(Users.class));
  30. }
  31. }

spring boot 教程(六)多数据源配置与使用相关推荐

  1. 13、Spring Boot 2.x 多数据源配置

    1.13 Spring Boot 2.x 多数据源配置 完整源码: Spring-Boot-Demos 转载于:https://www.cnblogs.com/Grand-Jon/p/9999779. ...

  2. Spring Boot 2.x 多数据源配置之 JPA 篇

    场景假设:现有电商业务,商品和库存分别放在不同的库 配置数据库连接 app:datasource:first:driver-class-name: com.mysql.cj.jdbc.Driverur ...

  3. spring boot 教程(三)配置详解

    在大部分情况下,我们不需要做太多的配置就能够让spring boot正常运行.在一些特殊的情况下,我们需要做修改一些配置,或者需要有自己的配置属性. Spring Boot 支持多种外部配置方式 这些 ...

  4. spring boot 中阿里druid 数据源配置及密码加密

    方式一: 1.spring.datasource配置 spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql ...

  5. node在regedit配置哪个位置_Spring Boot 2.x基础教程:Spring Data JPA的多数据源配置

    上一篇我们介绍了在使用JdbcTemplate来做数据访问时候的多数据源配置实现.接下来我们继续学习如何在使用Spring Data JPA的时候,完成多数据源的配置和使用. 添加多数据源的配置 先在 ...

  6. Spring Boot教程(十六):Spring Boot集成shiro

    Apache Shiro™是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理.借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到 ...

  7. 超详细的Spring Boot教程,搞定面试官!

    前言 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置 ...

  8. 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之前,多数据 ...

  9. Spring Boot教程系列(ImportNew )

    ImportNew Spring Boot教程系列 SpringBoot (一) :入门篇--http://mp.weixin.qq.com/s/hAJmvrYfS6OehMYVgqpqkw Spri ...

  10. Spring Boot教程系列 ImportNew

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Impo ...

最新文章

  1. Python.Scrapy.12-scrapy-source-code-analysis-part-2
  2. string.format大全
  3. python中不属于整数类型_哪个选项不是Python语言的整数类型?
  4. 干货 | 深度学习名词表:57个专业术语加相关资料解析(附论文)
  5. linux下杀死进程全权讲解
  6. jQuery - Bootstrap 3 and Youtube in Modal
  7. Java虚拟机(三)——类加载子系统概述
  8. 《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:紧凑型切片制作(Server缓存切片)...
  9. LDA主题模型原理解析与python实现
  10. windows 系统新建 vue 项目的坑
  11. 互联网创业公司残酷一幕:全员降薪,裁员凶猛与一夜解散
  12. 微服务架构:统一身份认证和授权技术解决方案
  13. ps画画模糊笔刷_大量PS笔刷AI笔刷打包下载(超过1000款笔刷)
  14. u深度重装系统详细教程_u深度重置用户密码操作步骤
  15. CAD​自定义快捷键命令
  16. 尚硅谷数据结构与算法(Java)--14--插入排序
  17. MSP430之仿真器驱动安装问题
  18. 消费者需求研究能够解决什么问题
  19. libgdx开发记录
  20. K-均值聚类(K-means)

热门文章

  1. java quartz实例_Java任务调度框架Quartz教程实例
  2. 魔改部署自己专属的合成大西瓜(三:上线篇<踩坑篇>)
  3. Linux之32/64位int、char、int*、char*与空结构体大小
  4. ffmpeg+rtmp推流/拉流(十)
  5. Baksmali用法
  6. 使用Android 隐藏API和内部 API
  7. H264 帧、pps 、sps
  8. Android NuPlayer播放框架
  9. Git/Repo/Gerrit区别
  10. Android 中 C++ Thread线程用法