通过MongoDbFactory创建mongoTemplate

时间:2025-03-25 19:57:31

添加maven依赖

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

配置文件

#MongDB配置
#MongoDB服务器连接地址
=192.
#MongoDB服务器连接端口
=27018
#MongoDB连接的库
=road_line

#如果mongo数据需要认证添加如下相关配置
#认证的库
#-database=admin
#用户名
#=root
#密码
#=123456

创建mongoTemplate

public class MongoUtil {

    private static String host = ("");
    private static int port =("");
    private static String database = ("");

//    private static String source = ("-database");
//    private static String userName = ("");
//    private static String password = ("");

//    取相关配置
//    @Value("${}")
//    private String host;
//
//    @Value("${}")
//    private int port;
//
//    @Value("${}")
//    private String database;


    @Bean(name = "mongoDbFactory")
    public static MongoDbFactory mongoDbFactory() {
        // 客户端
         builder = new ();
        //(10000);
        //(120000);
        //数据库连接池其他参数,如最大连接数这些,可以参考着使用部分参数
        //();
        //();
        //();
        //();
        //();
        //();
        //();
        //());
        //();
        //());
        //();
        //();
        //();
        //();
        //();
        //();
        //();

        MongoClientOptions mongoClientOptions = ();

        // MongoDB地址列表,如果有多个ip地址,那么配置文件里面可以用逗号分隔ip地址,这里再把每一个ip地址和端口号添加进list里面
        List<ServerAddress> serverAddresses = new ArrayList<>();
        ServerAddress serverAddress = new ServerAddress(host, port);
        (serverAddress);

        // 连接认证,如果设置了用户名和密码的话
        // MongoCredential mongoCredential = null;
        // mongoCredential = MongoCredential.createScramSha1Credential(userName,source, ());

        // 创建认证客户端(存在用户名和密码)
        // MongoClient mongoClient = new MongoClient(serverAddresses, mongoCredential, mongoClientOptions);

        // 创建非认证客户端(没有设置mongodb数据库的用户名和密码)
        MongoClient mongoClient = new MongoClient(serverAddresses, mongoClientOptions);

        // 创建MongoDbFactory
        MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient,database);
        return mongoDbFactory;
    }

    @Bean(name = "mongoTemplate")
    @Autowired
    public static MongoTemplate getMongoTemplate(MongoDbFactory mongoDbFactory)
    {
        return new MongoTemplate(mongoDbFactory);
    }
}

使用样例

@Component
public class LinkMain {

//    private static MongoTemplate mongoTemplate;
//    @Autowired
//    public LinkMain(MongoTemplate mongoTemplete) {
//         = mongoTemplate;
//    }

    private static MongoTemplate mongoTemplate;

    /**
     * 创建mongoTemplate
     */
    public static void getMongoTmeplate(){
        MongoDbFactory mongoDbFactory = ();
        mongoTemplate = (mongoDbFactory);
    }

    public static void main(String[] args) throws InterruptedException {
        // 手动创建MongoTemplate
        getMongoTmeplate();
        // 全量查询待匹配的数据
        List<RoadData> roadDataList = (, "road_data");

    }
}

 

相关文章