SpringBoot多数据源配置(MySql、Oracle)
在Spring Boot中配置多数据源,你可以创建多个配置类,每个配置类对应一个数据源,并且都需要使用@Configuration
注解标记为配置类。以下是一个配置MySQL和Oracle数据源的例子:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
@Configuration
public class MySQLConfig {
@Bean(name = "mySQLDataSource")
@Primary // 设置为主数据源
public DataSource mySQLDataSource() {
// 配置MySQL数据源
return DataSourceBuilder.create()
.url("jdbc:mysql://localhost:3306/mydb")
.username("myuser")
.password("mypass")
.build();
}
@Bean(name = "mySQLTransactionManager")
@Primary
public PlatformTransactionManager mySQLTransactionManager() {
return new DataSourceTransactionManager(mySQLDataSource());
}
}
@Configuration
public class OracleConfig {
@Bean(name = "oracleDataSource")
public DataSource oracleDataSource() {
// 配置Oracle数据源
return DataSourceBuilder.create()
.url("jdbc:oracle:thin:@localhost:1521:orcl")
.username("oracleuser")
.password("oraclepass")
.build();
}
@Bean(name = "oracleTransactionManager")
public PlatformTransactionManager oracleTransactionManager() {
return new DataSourceTransactionManager(oracleDataSource());
}
}
在这个例子中,我们定义了两个配置类MySQLConfig
和OracleConfig
,分别用来配置MySQL和Oracle数据源。每个数据源都有一个对应的DataSource
和PlatformTransactionManager
。通过@Primary
注解,Spring将知道哪个数据源是主要的,这对于某些需要默认数据源的Spring Boot组件是必须的。
确保你已经包含了必要的数据库驱动依赖在你的pom.xml
或build.gradle
文件中。例如,对于MySQL,你需要包含:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
评论已关闭