我的使用环境是写 了一个 打表 工具,
当程序使用的时候需要把表打到数据库中,但是 策划 测试 配置表是否成功的时候,是不需要把数据打到 数据库中,所以需要根据配置表去 判断 是否需要 打表到数据库中
MongoTemplate createTemplate() { String user = AppUtil.getProperty("spring.data.mongodb.username"); String password = AppUtil.getProperty("spring.data.mongodb.password"); String host = AppUtil.getProperty("spring.data.mongodb.host"); String port = AppUtil.getProperty("spring.data.mongodb.port"); String database = AppUtil.getProperty("spring.data.mongodb.database"); if (Objects.isNull(host)) { return null; } String connectionString = "mongodb://user:password@host:port/database"; if (Objects.isNull(user)) { connectionString = "mongodb://host:port/database"; } connectionString = connectionString.replaceAll("user", user) .replaceAll("password", password) .replaceAll("host", host) .replaceAll("port", port) .replaceAll("database", database); System.err.println(connectionString); MongoDatabaseFactory factory = new SimpleMongoClientDatabaseFactory(connectionString); return new MongoTemplate(factory); }当没有账号的时候 使用
mongodb://host:port/database有账号的时候 使用
mongodb://user:password@host:port/database这个问题,头短路了,没想明白,弄了几个小时。