在Spring Boot中,可以通过配置多个数据源来访问不同的数据库。下面是一种简单的方式:
1. 在application.properties(或application.yml)文件中配置多个数据源的连接信息。例如,配置两个数据源分别访问MySQL和MongoDB数据库:
```properties
# MySQL 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# MongoDB 数据源配置
spring.data.mongodb.uri=mongodb://localhost:27017/db2
```
2. 创建两个数据源的配置类,分别对应MySQL和MongoDB。在这些配置类中,使用@Configuration注解进行标注,并分别使用@Primary和@Qualifier注解来定义主数据源和辅助数据源。
```java
@Configuration
public class MysqlDataSourceConfig {
@Primary
@Bean(name = "mysqlDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource mysqlDataSource() {
return DataSourceBuilder.create().build();
}
}
@Configuration
public class MongoDataSourceConfig {
@Bean(name = "mongoDataSource")
@ConfigurationProperties(prefix = "spring.data.mongodb")
public MongoDbFactory mongoDataSource() {
return new SimpleMongoClientDbFactory(new ConnectionString());
}
}
```
3. 创建两个JdbcTemplate(或其他数据访问框架)的实例,并分别注入对应的数据源。
```java
@Autowired
@Qualifier("mysqlDataSource")
private DataSource mysqlDataSource;
@Autowired
@Qualifier("mongoDataSource")
private MongoDbFactory mongoDataSource;
@Bean(name = "mysqlJdbcTemplate")
public JdbcTemplate mysqlJdbcTemplate() {
return new JdbcTemplate(mysqlDataSource);
}
@Bean(name = "mongoTemplate")
public MongoTemplate mongoTemplate() {
return new MongoTemplate(mongoDataSource);
}
```
通过上述配置,你就可以在代码中使用不同的JdbcTemplate来访问不同的数据库,例如在某个服务类中:
```java
@Service
public class DataService {
@Autowired
@Qualifier("mysqlJdbcTemplate")
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
@Qualifier("mongoTemplate")
private MongoTemplate mongoTemplate;
// 使用 mysqlJdbcTemplate 访问 MySQL 数据库
// 使用 mongoTemplate 访问 MongoDB 数据库
}
```
通过这种方式,你可以灵活地配置和使用多个数据源,以实现对不同数据库的访问。当然,你也可以使用其他的数据库访问框架,如MyBatis、Hibernate等,根据框架的要求进行配置和使用。