Java教程

解决使用SpringBoot MongoDB Starter连接MongoDB密码带有@的问题

本文主要是介绍解决使用SpringBoot MongoDB Starter连接MongoDB密码带有@的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言:

        公司有些统计数据存储到MongoDB中,原来使用这些数据都是另一个项目提供查询接口,调用接口返回响应的数据。但是统计数据比较多,调用接口方式请求数据太慢,不如直接连数据库去查询。因为本项目使用SpringBoot框架,所以打算直接使用SpringBoot MongoDB Starter去连接MongoDB,没有使用原来公司自己封装的工具类。我们的MongoDB密码中带有@特殊符号,在连接的时候就报错。经过研究,有两种解决方案。

解决方案:

方案一:

        不使用spring.data.mongodb.url方式去连接,换成一下方式连接,这种方式的弊端是无法支持集群连接。

spring:  
  data:
    mongodb:
      host: 127.0.0.1
      port: 27017
      authenticationDatabase: test  # 指定验证数据库名称
      database: test
      username: test
      password: han@1356

方案二:

        将密码中@其进行URL编码进行替换即可,只需要对@一个字符进行编码就可以。@编码后是%40,其实在报错日志中已经告诉你,可以这么处理错误。

spring:  
  data:
    mongodb:
      uri: mongodb://test:han%401356@127.0.0.1/test	

这篇关于解决使用SpringBoot MongoDB Starter连接MongoDB密码带有@的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!