使用SpringBoot配置多数据源,需要先在pom.xml文件中添加对jdbc和mysql-connector-java的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
接着,在application.properties文件中添加多个数据源的配置信息,例如:
# 第一个数据源
spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 第二个数据源
spring.datasource.secondary.url=jdbc:mysql://localhost:3306/db2
spring.datasource.secondary.username=root
spring.datasource.secondary.password=123456
spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver
上述配置中,使用了spring.datasource和spring.datasource.secondary前缀来区分不同的数据源,其中url、username、password和driver-class-name是必需的配置项。
然后,在代码中定义两个数据源的bean对象:
@Configuration
public class DataSourceConfig {
@Bean(name = "primaryDataSource")
@Qualifier("primaryDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
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();
}
}
上述代码中,使用@Configuration注解将该类声明为配置类,并在其中定义了两个数据源的bean对象。
其中,@Bean注解用于声明bean,@Qualifier注解用于指定bean的名称,@Primary注解用于指定默认数据源。
另外,使用@ConfigurationProperties注解来自动将配置文件中的属性注入到对应的bean中。
最后,在需要使用数据源的地方,通过@Qualifier注解指定使用哪个数据源的bean对象,例如:
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
@Qualifier("primaryDataSource")
private DataSource dataSource1;
@Autowired
@Qualifier("secondaryDataSource")
private DataSource dataSource2;
// ...
}
在上述示例中,我们演示了如何定义两个数据源对象并在代码中使用它们。假设SpringBoot应用需要连接多个数据库,那么只需要按照上述方式,为每个数据库定义一个数据源及其对象,即可在应用代码中使用它们了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:教你使用springboot配置多数据源 - Python技术站