springboot 使用druid进行mysql与mongodb双数据源
时间: 2023-09-10 15:14:24 浏览: 295
使用Spring Boot在同一个应用中使用MySQL和MongoDB双数据源可以通过以下步骤实现:
1. 添加依赖
在pom.xml文件中添加MySQL和MongoDB的依赖:
```xml
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.7</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
```
2. 配置数据源
在application.properties文件中配置MySQL和MongoDB的数据源:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=true
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.validation-query=select 1 from dual
spring.data.mongodb.uri=mongodb://localhost:27017/dbname
```
3. 配置数据源连接池
在application.properties文件中配置Druid连接池:
```properties
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.filters=stat,wall
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
```
4. 配置JdbcTemplate和MongoTemplate
在Spring Boot应用程序中,可以使用JdbcTemplate和MongoTemplate来访问MySQL和MongoDB数据源。
```java
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DruidDataSourceBuilder.create().build();
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean
public MongoTemplate mongoTemplate(MongoDbFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter) {
return new MongoTemplate(mongoDbFactory, mappingMongoConverter);
}
}
```
5. 使用数据源
在需要使用MySQL和MongoDB数据源的类中,注入JdbcTemplate和MongoTemplate,并使用它们来访问数据库。
```java
@Service
public class UserService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private MongoTemplate mongoTemplate;
public void addUser(User user) {
// 使用JdbcTemplate访问MySQL数据源
jdbcTemplate.update("INSERT INTO user (id, username, password) VALUES (?, ?, ?)", user.getId(), user.getUsername(), user.getPassword());
// 使用MongoTemplate访问MongoDB数据源
mongoTemplate.save(user);
}
}
```
以上就是使用Spring Boot和Druid实现MySQL和MongoDB双数据源的步骤。
阅读全文