springboot 多数据源配置,postgresql+mysql为例
在Spring Boot中配置多数据源,可以使用@Primary
注解指定主数据源,并为每个数据源创建独立的配置类。以下是一个配置两个数据源(PostgreSQL和MySQL)的示例:
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 DataSourceConfig {
@Bean(name = "postgresqlDataSource")
@Primary // 设置为主数据源
public DataSource postgresqlDataSource() {
// 配置PostgreSQL数据源
return new PostgreSQLDataSource();
}
@Bean(name = "mysqlDataSource")
public DataSource mysqlDataSource() {
// 配置MySQL数据源
return new MySQLDataSource();
}
@Bean(name = "postgresqlTransactionManager")
@Primary
public PlatformTransactionManager postgresqlTransactionManager() {
return new DataSourceTransactionManager(postgresqlDataSource());
}
@Bean(name = "mysqlTransactionManager")
public PlatformTransactionManager mysqlTransactionManager() {
return new DataSourceTransactionManager(mysqlDataSource());
}
}
在这个配置类中,你需要为每个数据源创建相应的DataSource
实例。@Primary
注解指定了哪个数据源是主数据源,这通常是你主要操作的数据源。对于每个数据源,你还需要创建一个PlatformTransactionManager
bean,这是Spring用于管理事务的。
请注意,PostgreSQLDataSource
和MySQLDataSource
应该是实现了相应数据库连接的DataSource
类。
确保在实际环境中替换PostgreSQLDataSource
和MySQLDataSource
为实际的数据源实现,并且根据实际数据库配置相关参数。
评论已关闭