
# SpringBoot项目接入MAS-Mongo-SDK
1. MAS-Mongo-SDK使用Maven获取相关，根据实际情况设置Maven远程仓库地址等相关配置。
2. 在pom.xml文件中引入以下依赖，下面mas.version版本为最新版本，依赖组件版本参考[如何选择组件版本](https://support.huaweicloud.com/devg-mas/mas-devg-0099.html)。
   
   ```
   <properties>
       <!--以最新的版本号为准-->
       <mas.version>1.3.0-RELEASE</mas.version>
   </properties>
   <dependency>
       <groupId>com.huaweicloud.devspore</groupId>
       <artifactId>spring-cloud-starter-huawei-devspore-dds</artifactId>
       <version>${mas.version}</version>
   </dependency>
   ```
   
   
3. 参考配置文件示例application.yaml，配置参数参考[配置参数说明](https://support.huaweicloud.com/devg-mas/mas-devg-0043.html)。
   
   在项目的application.yaml中添加以下配置项：
   ```
   devspore:
     dds:
       # 基础信息 - 可选，当配置etcd后必选
       props:
         version: v1 #项目版本号，自定义
         app-id: xxxx #应用id，从MAS服务实例页面查询获取
         monitor-id: xxxx #监控器id，从MAS服务实例页面查询获取MAS监控id
         databaseName: xxxx #MAS监控的Mongo数据库
         cloud: xxxx
         region: xxxx
         azs: az1 
       # etcd配置，对接MAS服务关键配置，如不对接MAS则无需配置
       etcd: 
         address: 127.0.0.1:2379 #etcd地址，从MAS服务实例页面查询获取
         api-version: v3 #etcd版本，v3
         username: etcduser #etcd用户名，从MAS服务实例页面查询获取
         password: etcdpwd #etcd密码，从MAS服务实例页面查询获取
         https-enable: true #是否启用https，默认为false
         certificatePath: xxx #当启用https时证书路径，实例未开启双向认证或者不启用https场景，此项可不填
       # mongo数据源配置 - 必选    
   sources:
         dc1:
           username: dc1user #mongo用户名
           password: dc2pwd #mongo密码
           url: mongodb://127.0.0.1:29017/mongo1 #mongo连接串(注意不能带用户名密码)
           azs: az1 #此mongo数据库所属AZ
         dc2:
           username: dc2user #mongo用户名
           password: dc2pwd #mongo密码
           url: mongodb://127.0.0.1:29018/mongo1 #mongo连接串(注意不能带用户名密码)
           azs: az2 #此mongo数据库所属AZ
       active: dc1
       routeStrategy: local-read-single-write #路由策略
   ```
   
   
4. 在需要执行Mongo操作的地方引入Cluster（替代原有的MongoClient）或者MongoTemplate，执行相关的Mongo操作。 
   举例：
   ```
   @Autowired
   private Cluster cluster;
   @Autowired
    MongoTemplate mongoTemplate;
   ```
   
   
 
