使用的是mongotemplate,本来在项目的properties文件中,直接配置uri一行就搞定了并开发完成了,但是公司出于安全考虑需要把账号相关信息放在服务器上。
之前的人应该做好了可以直接读到服务器那个存储账号信息的文件的内容,现在需要做的是拿这个文件的账号信息去配置mongo的连接,配置mongotemplate
如果是springboot项目,可以直接在jar同级目录建一个config目录,新建一个application.properties 文件,将mongodb的配置放在这里
参考这个写写吧,有不明白的可以留言,springboot的项目
package mongo;
import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCredential;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.mongo.MongoClientSettingsBuilderCustomizer;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Component;
import org.springframework.util.StreamUtils;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
@Component
public class MongoConfig implements MongoClientSettingsBuilderCustomizer {
/**
* 读取配置文件
*/
@Value("file:///Users/zhangyz/temp/demo/demo003/test.txt")
private Resource resource;
@SneakyThrows
@Override
public void customize(MongoClientSettings.Builder clientSettingsBuilder) {
final String s = StreamUtils.copyToString(resource.getInputStream(), StandardCharsets.UTF_8);
final String[] split = s.split("\n");
System.out.println(Arrays.toString(split));
ConnectionString connectionString = new ConnectionString(String.format("mongodb://localhost:%s/%s", split[0], split[1]));
clientSettingsBuilder.credential(MongoCredential.createCredential(split[2], split[1],
split[3].toCharArray()));
clientSettingsBuilder.applyConnectionString(connectionString);
}
}
如果是springboot框架之上的,你可以了解下配置中心!
如果是其他的,你可以仿造一个配置中心