| 
					
				 | 
			
			
				@@ -13,12 +13,10 @@ import org.springframework.context.annotation.Configuration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.context.annotation.Import; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.mongodb.MongoDatabaseFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.mongodb.MongoTransactionManager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.mongodb.config.EnableMongoAuditing; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.mongodb.core.MongoTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.data.mongodb.core.convert.MappingMongoConverter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.data.mongodb.core.convert.MongoConverter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.data.mongodb.core.convert.MongoCustomConversions; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.data.mongodb.core.convert.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.mongodb.core.mapping.MongoMappingContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.mongodb.gridfs.GridFsTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -26,7 +24,9 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 集成自动配置 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 集成自动配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Configuration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @EnableMongoAuditing 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @ComponentScan({"com.zswl.dataservicestarter", "com.zswl.dataservicestarter.helper"}) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -34,82 +34,79 @@ import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Import(PaginationConfiguration.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class MongoConfiguration { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  static { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // jdk 11 以上,强制使用 TLSv1.3 ,  mongo 驱动目前兼容 TLSv1.2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    System.setProperty("jdk.tls.client.protocols", "TLSv1.2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    static { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // jdk 11 以上,强制使用 TLSv1.3 ,  mongo 驱动目前兼容 TLSv1.2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        System.setProperty("jdk.tls.client.protocols", "TLSv1.2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * 自定义转换器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @param mongoDbFactory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @param mongoMappingContext 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @ConditionalOnMissingBean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  public MappingMongoConverter mappingMongoConverter( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      MongoDatabaseFactory mongoDbFactory, MongoMappingContext mongoMappingContext) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    DefaultDbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    List<Object> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    list.add(new BigDecimalToDecimal128Converter()); // 自定义的类型转换器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    list.add(new Decimal128ToBigDecimalConverter()); // 自定义的类型转换器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    converter.setCustomConversions(new MongoCustomConversions(list)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 自定义转换器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param mongoDbFactory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param mongoMappingContext 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ConditionalOnMissingBean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public MappingMongoConverter mappingMongoConverter(MongoDatabaseFactory mongoDbFactory, MongoMappingContext mongoMappingContext) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        DefaultDbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Object> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        list.add(new BigDecimalToDecimal128Converter()); // 自定义的类型转换器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        list.add(new Decimal128ToBigDecimalConverter()); // 自定义的类型转换器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        converter.setCustomConversions(new MongoCustomConversions(list)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return converter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return converter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * 事务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @param dbFactory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  MongoTransactionManager transactionManager(MongoDatabaseFactory dbFactory) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return new MongoTransactionManager(dbFactory); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 事务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param dbFactory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MongoTransactionManager transactionManager(MongoDatabaseFactory dbFactory) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new MongoTransactionManager(dbFactory); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * 配置读写分离 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  public ReadPreference readPreference(MongoTemplate mongoTemplate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //        首选主节点,大多情况下读操作在主节点,如果主节点不可用,如故障转移,读操作在从节点。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ReadPreference readPreference = ReadPreference.primaryPreferred(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    mongoTemplate.setReadPreference(readPreference); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return readPreference; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 配置读写分离 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ReadPreference readPreference(MongoTemplate mongoTemplate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //        首选主节点,大多情况下读操作在主节点,如果主节点不可用,如故障转移,读操作在从节点。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ReadPreference readPreference = ReadPreference.primaryPreferred(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mongoTemplate.setReadPreference(readPreference); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return readPreference; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  public DocumentCodec documentCodec(MongoDatabaseFactory dbFactory) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return new DocumentCodec(dbFactory.getCodecRegistry()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public DocumentCodec documentCodec(MongoDatabaseFactory dbFactory) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new DocumentCodec(dbFactory.getCodecRegistry()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * GridFs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @param mongoDbFactory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @param mongoConverter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  public GridFsTemplate gridFsTemplate( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      MongoDatabaseFactory mongoDbFactory, MongoConverter mongoConverter) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return new GridFsTemplate(mongoDbFactory, mongoConverter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * GridFs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param mongoDbFactory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param mongoConverter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public GridFsTemplate gridFsTemplate(MongoDatabaseFactory mongoDbFactory, MongoConverter mongoConverter) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new GridFsTemplate(mongoDbFactory, mongoConverter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // 	 @EventListener(ApplicationReadyEvent.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  //	 public void initIndicesAfterStartup() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  //	    IndexOperations indexOps = mongoTemplate.indexOps(DomainType.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  //	     IndexResolver resolver = new MongoPersistentEntityIndexResolver(mongoMappingContext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  //	     resolver.resolveIndexFor(DomainType.class).forEach(indexOps::ensureIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  //	 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 	 @EventListener(ApplicationReadyEvent.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //	 public void initIndicesAfterStartup() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //	    IndexOperations indexOps = mongoTemplate.indexOps(DomainType.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //	     IndexResolver resolver = new MongoPersistentEntityIndexResolver(mongoMappingContext); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //	     resolver.resolveIndexFor(DomainType.class).forEach(indexOps::ensureIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //	 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |