searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

多数据源配置

2023-07-31 10:06:29
6
0

1、代码

1.1、添加配置yml

spring:
  mongodb:
    primary:
     uri: mongodb://admin:123456@192.168.1.77:27017/admin
     #集群配置
     #uri: mongodb://admin:123456@192.168.1.77:27017,192.168.2.77:27017,192.168.3.77:27017/admin
    secondary:
     uri: mongodb://admin:123456@192.168.1.77:27017/admin

1.2、配置类

public abstract class AbstractMongoConfig {
    //连接MongoDB地址
    private String uri;

    /**
     * 获取mongoDBTtemplate对象
     */
    public abstract MongoTemplate getMongoTemplate() throws Exception;

    /**
     * 创建mongoDb工厂
     */
    public MongoDbFactory mongoDbFactory() throws Exception {
        MongoClientURI mongoclienturi = new MongoClientURI(uri);
        return new SimpleMongoDbFactory(mongoclienturi);
    }

    public String getUri() {
        return uri;
    }

    public void setUri(String uri) {
        this.uri = uri;
    }
}

1.3、主库配置-@Primary注解决定主库

@Configuration
@ConfigurationProperties(prefix = "spring.mongodb.data.primary")
public class IndustryMongoConfig extends AbstractMongoConfig {
    
    @Primary
    @Override
    @Bean(name = "primaryMongoTemplate")
    public MongoTemplate getMongoTemplate() throws Exception {
        return new MongoTemplate(mongoDbFactory());
    }
}

1.4、第二个库配置

@Configuration
@ConfigurationProperties(prefix = "spring.mongodb.data.secondary")
//@Deprecated
public class UserBehaviorMongoConfig extends AbstractMongoConfig  {

    @Override
    @Bean(name = "secondaryMongoTemplate")
    public MongoTemplate getMongoTemplate() throws Exception {
        return new MongoTemplate(mongoDbFactory());
    }
}

1.5、排除springboot自动配置mongo内容

@SpringBootApplication(exclude = {
		MongoAutoConfiguration.class,
		MongoDataAutoConfiguration.class})

如果不配置这个,就会报错,每次启动就会提示找不到默认的那个spring.data.mongodb.uri的那个数据源

0条评论
作者已关闭评论
1****m
2文章数
0粉丝数
1****m
2 文章 | 0 粉丝
1****m
2文章数
0粉丝数
1****m
2 文章 | 0 粉丝
原创

多数据源配置

2023-07-31 10:06:29
6
0

1、代码

1.1、添加配置yml

spring:
  mongodb:
    primary:
     uri: mongodb://admin:123456@192.168.1.77:27017/admin
     #集群配置
     #uri: mongodb://admin:123456@192.168.1.77:27017,192.168.2.77:27017,192.168.3.77:27017/admin
    secondary:
     uri: mongodb://admin:123456@192.168.1.77:27017/admin

1.2、配置类

public abstract class AbstractMongoConfig {
    //连接MongoDB地址
    private String uri;

    /**
     * 获取mongoDBTtemplate对象
     */
    public abstract MongoTemplate getMongoTemplate() throws Exception;

    /**
     * 创建mongoDb工厂
     */
    public MongoDbFactory mongoDbFactory() throws Exception {
        MongoClientURI mongoclienturi = new MongoClientURI(uri);
        return new SimpleMongoDbFactory(mongoclienturi);
    }

    public String getUri() {
        return uri;
    }

    public void setUri(String uri) {
        this.uri = uri;
    }
}

1.3、主库配置-@Primary注解决定主库

@Configuration
@ConfigurationProperties(prefix = "spring.mongodb.data.primary")
public class IndustryMongoConfig extends AbstractMongoConfig {
    
    @Primary
    @Override
    @Bean(name = "primaryMongoTemplate")
    public MongoTemplate getMongoTemplate() throws Exception {
        return new MongoTemplate(mongoDbFactory());
    }
}

1.4、第二个库配置

@Configuration
@ConfigurationProperties(prefix = "spring.mongodb.data.secondary")
//@Deprecated
public class UserBehaviorMongoConfig extends AbstractMongoConfig  {

    @Override
    @Bean(name = "secondaryMongoTemplate")
    public MongoTemplate getMongoTemplate() throws Exception {
        return new MongoTemplate(mongoDbFactory());
    }
}

1.5、排除springboot自动配置mongo内容

@SpringBootApplication(exclude = {
		MongoAutoConfiguration.class,
		MongoDataAutoConfiguration.class})

如果不配置这个,就会报错,每次启动就会提示找不到默认的那个spring.data.mongodb.uri的那个数据源

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0