前言
最近有個項目需要用到結構化的數據和非結構化的數據,于是選擇了mysql和mongoDb。整個項目是基于Spring Boot創建的,相比于Spring MVC,Spring Boot集成了常用的第三方依賴庫,具有搭建迅速,配置更少的優點。
技術棧
- Spring Boot
- Mybatis
- MongoDB
- Mysql
正文
添加相關第三方依賴
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mysql依賴 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mongodb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
.yml 配置
此處和普通Spring Boot +
Mybatis項目最大不同在于在data節點加入了MongoDB的相關參數,后面會指定MongoDB數據掃描指定的DAO層位置。
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/dbName?characterEncoding=UTF-8&useSSL=true
username: mysqlUsername
password: mysqlPassword
data:
mongodb:
host: 127.0.0.1
port: 12345
username: mongoUsername
password: mongoPassword
database: database
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.multi.datasource.dao.mysql
主啟動類
這里關鍵添加了@EnableMongoRepositories("com.multi.datasource.dao.mongo")這行配置,設置MnogoDB的DAO層掃描路徑。
@SpringBootApplication
@EnableMongoRepositories("com.multi.datasource.dao.mongo")
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
結語
總體思路是通過不同數據源掃描不同路徑的DAO層實現,Mybatis
和MongDB雙數據源的配置還是比較簡單的。在此只是簡單做個記錄。