Spring Boot +JPA怎么配置多数据源?
有时候,我们需要在项目中配置多数据源。项目框架是SpringBoot+JPA,怎么配置多数据源呢?一、配置文件添加多数据源配置文件中配置多个数据源。如下:server: port: 8841spring: datasource: admin:
有时候,我们需要在项目中配置多数据源。项目框架是Spring Boot+JPA,怎么配置多数据源呢?
一、配置文件添加多数据源
配置文件中配置多个数据源。如下:
server: port: 8841 spring: datasource: admin: url: jdbc:sqlite:D:\data\db\back.db driver-class-name: org.sqlite.JDBC username: password: other: url: jdbc:sqlite:D:\data\db\my-test.db driver-class-name: org.sqlite.JDBC jpa: database: mysql show-sql: true hibernate: ddl-auto: update
说明:凯哥使用的是SQLite。MySQL数据库配置类似。如果需要配置的是MySQL多数据源,就改吧改吧。
二、代码添加
2.1:获取数据库配置信息的类
package com.kaigejava.config.datasource;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @author kaigejava
* @description 获取多数据源属性的
* @company kaigejava
* @since 2023/6/14 14:41
*/
@Component
@Data
public class DataSourceProperties {
/**
* admin库相关的数据库配置
*/
@Value("${spring.datasource.admin.url}")
private String adminUrl;
@Value("${spring.datasource.admin.driver-class-name}")
private String adminDriverClass;
/**
* other库相关的配置
*/
@Value("${spring.datasource.other.url}")
private String otherUrl;
@Value("${spring.datasource.other.driver-class-name}")
private String otherDriverClass;
}2.2:数据源配置相关的类
package com.kaigejava.config.datasource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.annotation.Resource;
import javax.sql.DataSource;
/**
* @author kaigejava
* @description
* @company kaigejava
* @since 2023/6/14 17:17
*/
@Configuration
public class DataSourceConfig {
@Resource
DataSourceProperties dataSourceProperties;
@Bean
@ConfigurationProperties("spring.datasource.one")
@Primary
DataSource dsOne() {
return DataSourceBuilder.create()
.url(dataSourceProperties.getAdminUrl())
.driverClassName(dataSourceProperties.getAdminDriverClass())
.build();
}
@Bean
@ConfigurationProperties("spring.datasource.two")
DataSource dsTwo() {
return DataSourceBuilder.create()
.url(dataSourceProperties.getOtherUrl())
.driverClassName(dataSourceProperties.getOtherDriverClass())
原创不易,完成人机校验,阅读全文
相关推荐
工作小总结spring boot 配置多数据源 踩坑 BindingException: Invalid bound statement (not found)工作小总结【已解决】Spring Boot多数据源的时候,mybatis报错提示:Invalid bound statement (not found)GIT项目Spring-boot 集成druid数据库连接池,Spring-boot实现druid的动态数据源,Spring-boot实现定时任务schedule,spring-boot集成mybatis工作小总结spring boot 最大并发会话连接数怎么配置工作小总结spring boot 之配置虚拟映射路径学习笔录-SPRING BOOTspring boot学习4 多环境配置学习笔录-SPRING BOOTspring boot框架学习10-spring boot持久化数据HM_LEADNEWSSpring boot 基于注解方式配置datasource