From a5b01b3d54d46a17d2f1e6bfe938db5394ccae95 Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Thu, 10 Jun 2021 16:31:11 +0800 Subject: [PATCH] =?UTF-8?q?perf[orm]:=20=E7=AE=80=E5=8C=96=E4=BA=86?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93mongodb=E7=9A=84=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- orm/README.md | 4 +- .../java/com/zfoo/orm/manager/OrmManager.java | 22 ++++------ .../com/zfoo/orm/model/config/HostConfig.java | 40 +++---------------- .../zfoo/orm/schema/OrmDefinitionParser.java | 6 +-- orm/src/main/resources/orm-1.0.xsd | 9 ----- orm/src/test/resources/application.xml | 4 +- orm/src/test/resources/deploy-dev.properties | 7 ++-- 7 files changed, 19 insertions(+), 73 deletions(-) diff --git a/orm/README.md b/orm/README.md index 93c80f36..0753f064 100644 --- a/orm/README.md +++ b/orm/README.md @@ -42,9 +42,7 @@ OrmContext.getAccessor().update(obj); ``` - - - + diff --git a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java index 4f9cf168..aea2ed7e 100644 --- a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java +++ b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java @@ -13,9 +13,8 @@ package com.zfoo.orm.manager; +import com.mongodb.ConnectionString; import com.mongodb.MongoClientSettings; -import com.mongodb.MongoCredential; -import com.mongodb.ServerAddress; import com.mongodb.client.*; import com.mongodb.client.model.IndexOptions; import com.mongodb.client.model.Indexes; @@ -26,10 +25,10 @@ import com.zfoo.orm.model.config.OrmConfig; import com.zfoo.orm.model.entity.IEntity; import com.zfoo.orm.model.vo.EntityDef; import com.zfoo.protocol.collection.CollectionUtils; +import com.zfoo.protocol.exception.RunException; import com.zfoo.protocol.util.AssertionUtils; import com.zfoo.protocol.util.JsonUtils; import com.zfoo.protocol.util.StringUtils; -import com.zfoo.util.net.HostAndPort; import org.bson.Document; import org.bson.codecs.configuration.CodecRegistries; import org.bson.codecs.configuration.CodecRegistry; @@ -87,23 +86,16 @@ public class OrmManager implements IOrmManager { .builder() .codecRegistry(pojoCodecRegistry); - // 设置数据库地址 + // 设置数据库连接地址,数据库账号密码 var hostConfig = ormConfig.getHostConfig(); - if (CollectionUtils.isNotEmpty(hostConfig.getAddressMap())) { - var hostList = HostAndPort.toHostAndPortList(hostConfig.getAddressMap().values()) - .stream() - .map(it -> new ServerAddress(it.getHost(), it.getPort())) - .collect(Collectors.toList()); - mongoBuilder.applyToClusterSettings(builder -> builder.hosts(hostList)); + if (StringUtils.isBlank(hostConfig.getUrl())) { + throw new RunException("数据库MongoDB的连接地址url不能为空,请检查orm的配置"); } - // 设置数据库账号密码 - if (!StringUtils.isBlank(hostConfig.getUser()) && !StringUtils.isBlank(hostConfig.getPassword())) { - mongoBuilder.credential(MongoCredential.createCredential(hostConfig.getUser(), "admin", hostConfig.getPassword().toCharArray())); - } + mongoBuilder.applyToClusterSettings(builder -> builder.applyConnectionString(new ConnectionString(hostConfig.getUrl()))); // 设置连接池的大小 - var maxConnection = Runtime.getRuntime().availableProcessors() * 3 + 1; + var maxConnection = Runtime.getRuntime().availableProcessors() * 2 + 1; mongoBuilder.applyToConnectionPoolSettings(builder -> builder.maxSize(maxConnection).minSize(1)); mongoClient = MongoClients.create(mongoBuilder.build()); diff --git a/orm/src/main/java/com/zfoo/orm/model/config/HostConfig.java b/orm/src/main/java/com/zfoo/orm/model/config/HostConfig.java index e7e2997c..6e441882 100644 --- a/orm/src/main/java/com/zfoo/orm/model/config/HostConfig.java +++ b/orm/src/main/java/com/zfoo/orm/model/config/HostConfig.java @@ -13,8 +13,6 @@ package com.zfoo.orm.model.config; -import java.util.Map; - /** * @author jaysunxiao * @version 3.0 @@ -22,18 +20,8 @@ import java.util.Map; public class HostConfig { private String database; - private String user; - private String password; - private Map addressMap; - - public static HostConfig valueOf(String database, String user, String password, Map addressMap) { - HostConfig config = new HostConfig(); - config.database = database; - config.user = user; - config.password = password; - config.addressMap = addressMap; - return config; - } + // 连接地址 + private String url; public String getDatabase() { return database; @@ -43,27 +31,11 @@ public class HostConfig { this.database = database; } - public String getUser() { - return user; + public String getUrl() { + return url; } - public void setUser(String user) { - this.user = user; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public Map getAddressMap() { - return addressMap; - } - - public void setAddressMap(Map addressMap) { - this.addressMap = addressMap; + public void setUrl(String url) { + this.url = url; } } diff --git a/orm/src/main/java/com/zfoo/orm/schema/OrmDefinitionParser.java b/orm/src/main/java/com/zfoo/orm/schema/OrmDefinitionParser.java index c57eb6d3..b024064a 100644 --- a/orm/src/main/java/com/zfoo/orm/schema/OrmDefinitionParser.java +++ b/orm/src/main/java/com/zfoo/orm/schema/OrmDefinitionParser.java @@ -105,11 +105,7 @@ public class OrmDefinitionParser implements BeanDefinitionParser { var builder = BeanDefinitionBuilder.rootBeanDefinition(clazz); resolvePlaceholder("database", "database", builder, element, parserContext); - resolvePlaceholder("user", "user", builder, element, parserContext); - resolvePlaceholder("password", "password", builder, element, parserContext); - - var addressMap = parseAddress(element, parserContext); - builder.addPropertyValue("addressMap", addressMap); + resolvePlaceholder("url", "url", builder, element, parserContext); parserContext.getRegistry().registerBeanDefinition(clazz.getCanonicalName(), builder.getBeanDefinition()); } diff --git a/orm/src/main/resources/orm-1.0.xsd b/orm/src/main/resources/orm-1.0.xsd index 00ad0f51..38497d48 100644 --- a/orm/src/main/resources/orm-1.0.xsd +++ b/orm/src/main/resources/orm-1.0.xsd @@ -28,16 +28,7 @@ - - - - - - - - - diff --git a/orm/src/test/resources/application.xml b/orm/src/test/resources/application.xml index c97194bf..effbde38 100644 --- a/orm/src/test/resources/application.xml +++ b/orm/src/test/resources/application.xml @@ -21,9 +21,7 @@ - - - + diff --git a/orm/src/test/resources/deploy-dev.properties b/orm/src/test/resources/deploy-dev.properties index b80ea996..08a59646 100644 --- a/orm/src/test/resources/deploy-dev.properties +++ b/orm/src/test/resources/deploy-dev.properties @@ -1,5 +1,4 @@ mongodb.database=test -mongodb.user= -mongodb.password= -mongodb.address.name=server0 -mongodb.address.url=127.0.0.1:27017 \ No newline at end of file +mongodb.url=mongodb://127.0.0.1:27017 +#mongodb.url=mongodb://user:pasword@127.0.0.1:27017 +#mongodb.url=mongodb://user:pasword@127.0.0.1:27017/admin?replicaSet=setName \ No newline at end of file