From c0218fd65f8755e6cf4e80db293c4c4b7efc3792 Mon Sep 17 00:00:00 2001 From: jiangjiazhi Date: Fri, 27 May 2016 15:39:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/biz/service/BasicConfigService.java | 53 ++++++++++++++++------ .../platform/permission/model/Organization.java | 2 +- .../com/lyms/platform/permission/model/Roles.java | 2 +- .../lyms/platform/common/utils/CacheHelper.java | 27 +++++++++++ 4 files changed, 68 insertions(+), 16 deletions(-) create mode 100644 platform-common/src/main/java/com/lyms/platform/common/utils/CacheHelper.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BasicConfigService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BasicConfigService.java index c84f381..c071f3f 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BasicConfigService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BasicConfigService.java @@ -1,29 +1,34 @@ package com.lyms.platform.biz.service; -import java.util.Collection; -import java.util.List; - -import com.lyms.platform.common.enums.YnEnums; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Sort; -import org.springframework.data.domain.Sort.Direction; -import org.springframework.stereotype.Service; - +import com.google.common.cache.*; import com.lyms.platform.biz.dal.IBasicConfigDao; import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.dao.operator.Page; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.utils.CacheHelper; import com.lyms.platform.pojo.BasicConfig; import com.lyms.platform.query.BasicConfigQuery; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.data.domain.Sort.Direction; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; +import java.util.concurrent.TimeUnit; @Service("basicConfigService") -public class BasicConfigService { - +public class BasicConfigService implements InitializingBean { + @Autowired private IBasicConfigDao basicConfigDao; + private LoadingCache cached=null; + public void addBasicConfig(BasicConfig obj) { obj.setModifiedDate(System.currentTimeMillis()); basicConfigDao.addBasicConfig(obj); @@ -52,14 +57,34 @@ public class BasicConfigService { return basicConfigDao.queryBasicConfig(MongoCondition.newInstance("parentId", "0", MongoOper.IS).and("yn", YnEnums.YES.getId(), MongoOper.IS).toMongoQuery() .addOrder(Direction.ASC, "id")); } + + + + public BasicConfig getOneBasicConfigById(String id) { - return basicConfigDao.getOneBasicConfigById(id); + try{ + return cached.get(id); + }catch (Exception e){ + } + return null; } + public List queryByParentId(String parentId) { - return basicConfigDao.queryBasicConfig(MongoCondition.newInstance("parentId", parentId, MongoOper.IS).and("yn", YnEnums.YES.getId(),MongoOper.IS).toMongoQuery()); + return basicConfigDao.queryBasicConfig(MongoCondition.newInstance("parentId", parentId, MongoOper.IS).and("yn", YnEnums.YES.getId(), MongoOper.IS).toMongoQuery()); } public Page queryGuidesAndPage(int start, int end) { return basicConfigDao.findPage(MongoCondition.newInstance().toMongoQuery().start(start).end(end).addOrder(Direction.ASC, "id")); } + + @Override + public void afterPropertiesSet() throws Exception { + //cache size 为400 缓存3分钟 + cached = CacheHelper.cached(new CacheLoader() { + @Override + public BasicConfig load(String key) throws Exception { + return basicConfigDao.getOneBasicConfigById(key); + } + },400,3); + } } \ No newline at end of file diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Organization.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Organization.java index 19e7565..14ffc97 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Organization.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Organization.java @@ -34,7 +34,7 @@ public class Organization { private Object area; private Object street; private String foreignId; - private Integer orgType; //-1 δ 0 ˾ 1 ҽԺ + private Integer orgType; //-1 未设置 0 公司 1 医院 public Integer getOrgType() { return orgType; diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Roles.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Roles.java index 4cd7a63..39990ff 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Roles.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Roles.java @@ -10,7 +10,7 @@ public class Roles { private Integer publishId; private String publishName; private Integer yn; - private Integer enable; //1 2 + private Integer enable; private Date modified; private Date created; private String remarks; diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/CacheHelper.java b/platform-common/src/main/java/com/lyms/platform/common/utils/CacheHelper.java new file mode 100644 index 0000000..645abd7 --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/CacheHelper.java @@ -0,0 +1,27 @@ +package com.lyms.platform.common.utils; + +import com.google.common.cache.*; + +import java.util.concurrent.TimeUnit; + +/** + * 创建本地缓存 + * + * Created by Administrator on 2016/5/27 0027. + */ +public class CacheHelper { + public static LoadingCache cached(CacheLoader cacheLoader,int size,int minutes) { + LoadingCache cache = CacheBuilder + .newBuilder() + .maximumSize(size) + .expireAfterAccess(minutes, TimeUnit.MINUTES) + .removalListener(new RemovalListener() { + @Override + public void onRemoval(RemovalNotification rn) { + System.out.println(rn.getKey() + "被移除"); + } + }) + .build(cacheLoader); + return cache; + } +} \ No newline at end of file -- 1.8.3.1