Spring Boot 雙數據源Mybatis+MongoDB配置

前言

最近有個項目需要用到結構化的數據和非結構化的數據,于是選擇了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雙數據源的配置還是比較簡單的。在此只是簡單做個記錄。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容