
# Spring项目接入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>devspore-dds</artifactId>
       <version>${mas.version}</version>
   </dependency>
   ```
   
   
3. 参照配置文件示例，结合[配置参数说明](https://support.huaweicloud.com/devg-mas/mas-devg-0043.html)，按实际情况修改配置文件。
   
   配置文件示例devspore-mongo.yaml：
   ```
   props:
     version: v1
     app-id: xxxx #MAS应用id
     monitor-id: xxxx #MAS监控id
     databaseName: xxxx #MAS监控的Mongo数据库
     cloud: xxxx
     region: xxxxx
     azs: az1 
   etcd:
     address: 127.0.0.1:2379 #格式为ip:port，集群模式时多个地址以英文逗号`,`分隔
     api-version: v3 
     username: xxxx
     password: xxxx
     https-enable: true
     certificatePath: xxx
   sources:
     dc1：
       username：xxx
       password: xxx
       url: mongodb://127.0.0.1:1234/mongo #此url请勿配置username和password
     dc2:
       username: yyy
       password: yyy
       url: mongodb://127.0.0.1:2234/mongo
   active: dc1
   ```
   
   
4. MAS-Mongo-SDK提供了MasClusterConfigurationLoader.load方法，可以读取YAML格式的配置，生成Cluster（MongoClient）或MongoTemplate进行Mongodb操作。 
   代码示例：
   ```
   @Bean
   public Cluster createCluster() {
       File yamlFile = new File(this.getClass().getClassLoader().getResource("devspore-mongo.yaml").getFile());
       ClusterConfiguration config = MasClusterConfigurationLoader.load(yamlFile);
       return MongoClientFactory.createMongoClient(config);
   }
   @Bean
   public MongoTemplate createMongoTemplate() {
       File yamlFile = new File(this.getClass().getClassLoader().getResource("devspore-mongo.yaml").getFile());
       ClusterConfiguration config = MasClusterConfigurationLoader.load(yamlFile);
       return MongoTemplateFactory.createMongoTemplate(config);
   }
   ```
   
   
5. 在需要执行MongoDB操作的地方引入Cluster或MongoTemplate，并使用其执行Mongo操作。
 
