• springboot 多数据源(2)使用 Mongorepository


    原文:https://blog.csdn.net/qq_35418518/article/details/107411512?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

    依赖:

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-mongodb</artifactId>
            </dependency>

    yml :

    pring:
      data:
        mongodb:
          primary:
            uri: mongodb://name:passward123@192.168.34.160:27017/test_1?slaveOk=true
          secondary:
            uri: mongodb://name:passward123@192.168.34.160:27017/test_2?slaveOk=true

    推荐使用uri ,这样方便添加可选配置 

    mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/test?replicaSet=myRepl&authSource=admin

    如果出现,uri中使用特殊字符。使用16进制进行URL编码代替。(@被使用,%40替换。:被使用,%3A替换)

    eg:

    读取偏好选项

    读取首选项描述了与副本集有关的读取操作的行为。 这些参数允许你在连接字符串中基于每个连接指定读取首选项。

      • readPreference
      • maxStalenessSeconds
      • readPreferenceTags
      • 连接池选项

        • maxPoolSize
        • minPoolSize
        • maxIdleTimeMS
        • waitQueueMultiple
        • waitQueueTimeoutMS
        • 连接选项

          • ssl
          • connectTimeoutMS
          • socketTimeoutMS
          • compressors
          • zlibCompressionLevel


    .目录结构: (不同数据源的使用不同的目录,entity 和repository 置于目录下!!!)

    4. game实体类

    @Document(collection = "info_account")
    @Accessors(chain = true)
    @Data
    public class AccountInfo {
     
        @Id
        private String account;
     
        private int gameId;
     
        private String passWord;
    }

    game repository

    public interface AccountRepository extends MongoRepository<AccountInfo,String> {
     
        List<AccountInfo> findAllByAccount(String account);
    }

    game 数据源配置(每个数据源单独一个配置文件)

    @Configuration
    @EnableMongoRepositories(basePackages = "com.gray.database.game",
            mongoTemplateRef = "gameDBTemplate")
    public class GameDBConfig {
     
        @Bean
        @Primary
        @ConfigurationProperties(prefix="spring.data.mongodb.primary")
        public MongoProperties primaryMongoProperties() {
            return new MongoProperties();
        }
     
        @Primary
        @Bean(name = "gameDBTemplate")
        public MongoTemplate primaryMongoTemplate() throws Exception {
            return new MongoTemplate(primaryFactory(primaryMongoProperties()));
        }
     
        @Bean
        @Primary
        public MongoDbFactory primaryFactory(MongoProperties mongoProperties) throws Exception {
            ConnectionString connectionString = new ConnectionString(mongoProperties.getUri());
            return new SimpleMongoClientDbFactory(connectionString);
        }
    }
  • 相关阅读:
    npm start报错
    npm install 错误
    vue父子组件间传值
    vue-devtools安装过程的坑
    用js进行排序
    筛选表格数据
    基于ElementUI封装可复用的表格组件
    小程序头部滑动切换
    DisneyDiffuse解析
    基于URP的ScreenSpaceDecal的实现(其实和URP没啥关系)
  • 原文地址:https://www.cnblogs.com/lshan/p/13925233.html
Copyright © 2020-2023  润新知