From 34cbdfff606bdad94f284ab3e7d02f6103c48772 Mon Sep 17 00:00:00 2001 From: wangcheng Date: Sat, 14 Mar 2020 19:30:11 +0800 Subject: [PATCH] fix:upgrade spring boot 2.2.5 guava 28.2 fastjson 1.2.66,delete MongoClientURI. --- pom.xml | 14 ++---- .../src/main/resources/application-dev.yml | 3 +- .../src/main/resources/application-dev.yml | 3 +- .../impl/engine/AggregateCommandImpl.java | 47 +++++++++---------- .../service/impl/model/EntityServiceImpl.java | 19 ++++---- .../service/impl/model/ModelServiceImpl.java | 24 ++++------ .../radar/service/impl/util/MongodbUtil.java | 36 ++++++-------- 7 files changed, 61 insertions(+), 85 deletions(-) diff --git a/pom.xml b/pom.xml index e56505e..08e4976 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 2.1.7.RELEASE + 2.2.5.RELEASE com.pgmmers @@ -30,8 +30,7 @@ 4.0.0 1.3.7 5.1.47 - 2.1.7.RELEASE - 8.5.37 + 2.2.5.RELEASE 1.12.0 7.6.1 @@ -113,14 +112,9 @@ com.alibaba fastjson - 1.2.60 + 1.2.66 - - org.mongodb - mongo-java-driver - 3.2.2 - org.lionsoul @@ -208,7 +202,7 @@ com.google.guava guava - 28.0-jre + 28.2-jre diff --git a/radar-admin/src/main/resources/application-dev.yml b/radar-admin/src/main/resources/application-dev.yml index 43b04d2..0b2cfef 100644 --- a/radar-admin/src/main/resources/application-dev.yml +++ b/radar-admin/src/main/resources/application-dev.yml @@ -25,7 +25,8 @@ elasticsearch: cluster: name: elasticsearch url: http://127.0.0.1:9200 - + username: # 不存在就留空 + password: # sys: conf: app: admin # admin 或者 engine, 根据启动的项目名称进行选择 diff --git a/radar-engine/src/main/resources/application-dev.yml b/radar-engine/src/main/resources/application-dev.yml index 68931e1..8082ff1 100644 --- a/radar-engine/src/main/resources/application-dev.yml +++ b/radar-engine/src/main/resources/application-dev.yml @@ -29,7 +29,8 @@ elasticsearch: cluster: name: elasticsearch url: http://127.0.0.1:9200 - + username: # 不存在就留空 + password: sys: conf: app: engine # admin 或者 engine, 根据启动的项目名称进行选择 diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/engine/AggregateCommandImpl.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/engine/AggregateCommandImpl.java index f425df4..6c185d8 100644 --- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/engine/AggregateCommandImpl.java +++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/engine/AggregateCommandImpl.java @@ -8,28 +8,23 @@ import com.mongodb.client.model.Filters; import com.pgmmers.radar.enums.FieldType; import com.pgmmers.radar.service.engine.AggregateCommand; import com.pgmmers.radar.service.impl.util.MongodbUtil; -import org.bson.Document; -import org.bson.conversions.Bson; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; +import org.bson.Document; +import org.bson.conversions.Bson; +import org.springframework.stereotype.Service; @Service public class AggregateCommandImpl implements AggregateCommand { - @Value("${spring.data.mongodb.uri}") - private String url; - @Override public long count(String modelId, String searchField, Object searchFieldValue, String refDateName, Date begin, Date end) { - String tempUrl = url + ".entity_" + modelId; - Long qty = MongodbUtil.count(tempUrl, Filters.and(Filters.eq(searchField, searchFieldValue), + String collectionName = "entity_" + modelId; + Long qty = MongodbUtil.count(collectionName, Filters.and(Filters.eq(searchField, searchFieldValue), Filters.gte(refDateName, begin.getTime()), Filters.lte(refDateName, end.getTime()))); return qty; } @@ -37,8 +32,8 @@ public class AggregateCommandImpl implements AggregateCommand { @Override public long distinctCount(String modelId, String searchField, Object searchFieldValue, String refDateName, Date begin, Date end, String distinctBy) { - String tempUrl = url + ".entity_" + modelId; - Long qty = MongodbUtil.distinctCount(tempUrl, Filters.and(Filters.eq(searchField, searchFieldValue), + String collectionName = "entity_" + modelId; + Long qty = MongodbUtil.distinctCount(collectionName, Filters.and(Filters.eq(searchField, searchFieldValue), Filters.gte(refDateName, begin.getTime()), Filters.lte(refDateName, end.getTime())), distinctBy); return qty; } @@ -47,14 +42,14 @@ public class AggregateCommandImpl implements AggregateCommand { public BigDecimal sum(String modelId, String searchField, Object searchFieldValue, String refDateName, Date begin, Date end, String funcField) { BigDecimal sum = null; - String tempUrl = url + ".entity_" + modelId; + String collectionName = "entity_" + modelId; Document match = new Document("$match", new Document(searchField, searchFieldValue).append(refDateName, new Document("$gte", begin.getTime()).append("$lte", end.getTime()))); Document group = new Document("$group", new Document("_id", null).append("sum", new Document("$sum", "$" + funcField))); List pipeline = Arrays.asList(match, group); - AggregateIterable it = MongodbUtil.aggregate(tempUrl, pipeline); + AggregateIterable it = MongodbUtil.aggregate(collectionName, pipeline); Document doc = it.first(); if (doc != null) { sum = new BigDecimal(doc.get("sum").toString()); @@ -68,14 +63,14 @@ public class AggregateCommandImpl implements AggregateCommand { public BigDecimal average(String modelId, String searchField, Object searchFieldValue, String refDateName, Date begin, Date end, String funcField) { BigDecimal avg = null; - String tempUrl = url + ".entity_" + modelId; + String collectionName = "entity_" + modelId; Document match = new Document("$match", new Document(searchField, searchFieldValue).append(refDateName, new Document("$gte", begin.getTime()).append("$lte", end.getTime()))); Document group = new Document("$group", new Document("_id", null).append("avg", new Document("$avg", "$" + funcField))); List pipeline = Arrays.asList(match, group); - AggregateIterable it = MongodbUtil.aggregate(tempUrl, pipeline); + AggregateIterable it = MongodbUtil.aggregate(collectionName, pipeline); Document doc = it.first(); if (doc != null) { avg = new BigDecimal(doc.get("avg").toString()); @@ -87,14 +82,14 @@ public class AggregateCommandImpl implements AggregateCommand { public BigDecimal median(String modelId, String searchField, Object searchFieldValue, String refDateName, Date begin, Date end, String funcField) { BigDecimal avg = null; - String tempUrl = url + ".entity_" + modelId; + String collectionName = "entity_" + modelId; Document match = new Document("$match", new Document(searchField, searchFieldValue).append(refDateName, new Document("$gte", begin.getTime()).append("$lte", end.getTime()))); Document sort = new Document("$sort", new Document(funcField, 1)); List pipeline = Arrays.asList(match, sort); - AggregateIterable it = MongodbUtil.aggregate(tempUrl, pipeline); - List docList = new ArrayList(); + AggregateIterable it = MongodbUtil.aggregate(collectionName, pipeline); + List docList = new ArrayList<>(); it.forEach(new Block() { @Override @@ -130,14 +125,14 @@ public class AggregateCommandImpl implements AggregateCommand { public BigDecimal max(String modelId, String searchField, Object searchFieldValue, String refDateName, Date begin, Date end, String funcField) { BigDecimal max = null; - String tempUrl = url + ".entity_" + modelId; + String collectionName = "entity_" + modelId; Document match = new Document("$match", new Document(searchField, searchFieldValue).append(refDateName, new Document("$gte", begin.getTime()).append("$lte", end.getTime()))); Document group = new Document("$group", new Document("_id", null).append("max", new Document("$max", "$" + funcField))); List pipeline = Arrays.asList(match, group); - AggregateIterable it = MongodbUtil.aggregate(tempUrl, pipeline); + AggregateIterable it = MongodbUtil.aggregate(collectionName, pipeline); Document doc = it.first(); if (doc != null) { max = new BigDecimal(doc.get("max").toString()); @@ -149,14 +144,14 @@ public class AggregateCommandImpl implements AggregateCommand { public BigDecimal min(String modelId, String searchField, Object searchFieldValue, String refDateName, Date begin, Date end, String funcField) { BigDecimal min = null; - String tempUrl = url + ".entity_" + modelId; + String collectionName = "entity_" + modelId; Document match = new Document("$match", new Document(searchField, searchFieldValue).append(refDateName, new Document("$gte", begin.getTime()).append("$lte", end.getTime()))); Document group = new Document("$group", new Document("_id", null).append("min", new Document("$min", "$" + funcField))); List pipeline = Arrays.asList(match, group); - AggregateIterable it = MongodbUtil.aggregate(tempUrl, pipeline); + AggregateIterable it = MongodbUtil.aggregate(collectionName, pipeline); Document doc = it.first(); if (doc != null) { min = new BigDecimal(doc.get("min").toString()); @@ -189,11 +184,11 @@ public class AggregateCommandImpl implements AggregateCommand { @Override public BigDecimal variance(String modelId, String searchField, Object searchFieldValue, String refDateName, Date begin, Date end, String funcField, FieldType fieldType) { - String tempUrl = url + ".entity_" + modelId; + String collectionName = "entity_" + modelId; Bson filter = Filters.and(Filters.eq(searchField, searchFieldValue), Filters.gte(refDateName, begin.getTime()), Filters.lte(refDateName, end.getTime())); - FindIterable findIt = MongodbUtil.find(tempUrl, filter); - List records = new ArrayList(); + FindIterable findIt = MongodbUtil.find(collectionName, filter); + List records = new ArrayList<>(); BigDecimal sum = new BigDecimal("0"); findIt.forEach(new Block() { @Override diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/EntityServiceImpl.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/EntityServiceImpl.java index 8b1742e..b2bff43 100644 --- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/EntityServiceImpl.java +++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/EntityServiceImpl.java @@ -6,25 +6,21 @@ import com.pgmmers.radar.service.cache.SubscribeHandle; import com.pgmmers.radar.service.impl.util.MongodbUtil; import com.pgmmers.radar.service.model.EntityService; import com.pgmmers.radar.vo.model.ModelVO; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import javax.annotation.PostConstruct; import org.bson.Document; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - @Service public class EntityServiceImpl implements EntityService, SubscribeHandle { private Logger logger = LoggerFactory.getLogger(EntityServiceImpl.class); - @Value("${spring.data.mongodb.uri}") - private String url; @Autowired private ModelDal modelDal; @@ -39,9 +35,10 @@ public class EntityServiceImpl implements EntityService, SubscribeHandle { modelList = modelDal.listModel(null); cacheService.subscribeModel(this); } + @Override public int save(Long modelId, String jsonString, boolean isAllowDuplicate) { - String tmpUrl = url + ".entity_" + modelId; + String tmpUrl = "entity_" + modelId; Document doc = Document.parse(jsonString); if (!isAllowDuplicate) { ModelVO model = null;//cacheService.getModel(modelId); @@ -71,14 +68,16 @@ public class EntityServiceImpl implements EntityService, SubscribeHandle { // TODO Auto-generated method stub return null; } + @Override public void onMessage(String channel, String message) { modelList = modelDal.listModel(null); } + @Override public int save(Long modelId, String jsonString, String attachJson, boolean isAllowDuplicate) { - String tmpUrl = url + ".entity_" + modelId; + String tmpUrl = "entity_" + modelId; Document doc = Document.parse(jsonString); Document atta = Document.parse(attachJson); ModelVO model = null;//cacheService.getModel(modelId); diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelServiceImpl.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelServiceImpl.java index 2152854..8001d8f 100644 --- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelServiceImpl.java +++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelServiceImpl.java @@ -19,6 +19,7 @@ import com.pgmmers.radar.service.search.SearchEngineService; import com.pgmmers.radar.vo.model.FieldVO; import com.pgmmers.radar.vo.model.ModelVO; import com.pgmmers.radar.vo.model.PreItemVO; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -33,14 +34,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import javax.annotation.PostConstruct; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.TimeUnit; - - @Service public class ModelServiceImpl implements ModelService, SubscribeHandle { @@ -53,9 +46,6 @@ public class ModelServiceImpl implements ModelService, SubscribeHandle { @Autowired private CacheService cacheService; - @Value("${spring.data.mongodb.uri}") - private String url; - @Value("${sys.conf.mongo-restore-days}") private Integer eventExpireDays; @@ -180,9 +170,9 @@ public class ModelServiceImpl implements ModelService, SubscribeHandle { ModelVO modelVO = modelDal.getModelById(id); List fields = modelDal.listField(id); List items = modelDal.listPreItem(id, null); - String tempUrl = url + ".entity_" + id; - MongodbUtil.mongoTemplate.getCollection(tempUrl).drop(); - MongodbUtil.mongoTemplate.createCollection(tempUrl); + String collectionName = "entity_" + id; + MongodbUtil.mongoTemplate.getCollection(collectionName).drop(); + MongodbUtil.mongoTemplate.createCollection(collectionName); List indexes = new ArrayList<>(); if (fields == null) { @@ -207,14 +197,16 @@ public class ModelServiceImpl implements ModelService, SubscribeHandle { indexes.add(ttlIndex); - MongodbUtil.getCollection(tempUrl).createIndexes(indexes); + MongodbUtil.getCollection(collectionName).createIndexes(indexes); // // 重建es index JSONObject total = buildEsMappingJson(fields, items); // execute - boolean isCreated = searchService.createIndex(modelVO.getGuid().toLowerCase(), modelVO.getModelName().toLowerCase(), total.toJSONString()); + boolean isCreated = searchService + .createIndex(modelVO.getGuid().toLowerCase(), modelVO.getModelName().toLowerCase(), + total.toJSONString()); logger.info("index mapping:{} is create {}", total.toJSONString(), isCreated); if (isCreated) { modelVO.setStatus(StatusType.INACTIVE.getKey()); diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/util/MongodbUtil.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/util/MongodbUtil.java index e2173f9..91b5f4d 100644 --- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/util/MongodbUtil.java +++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/util/MongodbUtil.java @@ -1,12 +1,10 @@ package com.pgmmers.radar.service.impl.util; -import com.mongodb.MongoClientURI; import com.mongodb.client.AggregateIterable; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import java.util.Iterator; import java.util.List; -import java.util.Objects; import org.bson.BsonValue; import org.bson.Document; import org.bson.conversions.Bson; @@ -24,24 +22,22 @@ public class MongodbUtil implements InitializingBean { mongoTemplate = (MongoTemplate) BeanUtils.getBean("mongoTemplate"); } - public static MongoCollection getCollection(String uri) { - MongoClientURI clientURI = new MongoClientURI(uri); - return mongoTemplate.getCollection(Objects.requireNonNull(clientURI.getCollection())); + public static MongoCollection getCollection(String collectionName) { + return mongoTemplate.getCollection(collectionName); } - public static void insert(String url, Document doc) { - MongoCollection collection = getCollection(url); + public static void insert(String collectionName, Document doc) { + MongoCollection collection = getCollection(collectionName); collection.insertOne(doc); } - public static long count(String url, Bson filter) { - MongoCollection collection = getCollection(url); - long count = collection.count(filter); - return count; + public static long count(String collectionName, Bson filter) { + MongoCollection collection = getCollection(collectionName); + return collection.countDocuments(filter); } - public static long distinctCount(String url, Bson filter, String fieldName) { - MongoCollection collection =getCollection(url); + public static long distinctCount(String collectionName, Bson filter, String fieldName) { + MongoCollection collection =getCollection(collectionName); long count = 0; Iterator it = collection.distinct(fieldName, filter, BsonValue.class).iterator(); while (it.hasNext()) { @@ -51,16 +47,14 @@ public class MongodbUtil implements InitializingBean { return count; } - public static AggregateIterable aggregate(String url, List pipeline) { - MongoCollection collection = getCollection(url); - AggregateIterable it = collection.aggregate(pipeline); - return it; + public static AggregateIterable aggregate(String collectionName, List pipeline) { + MongoCollection collection = getCollection(collectionName); + return collection.aggregate(pipeline); } - public static FindIterable find(String url, Bson filter) { - MongoCollection collection = getCollection(url); - FindIterable it = collection.find(filter); - return it; + public static FindIterable find(String collectionName, Bson filter) { + MongoCollection collection = getCollection(collectionName); + return collection.find(filter); } }