前言:
公司有些统计数据存储到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