| | |
| | | package com.zy.asrs.framework.common; |
| | | |
| | | import com.zy.asrs.framework.exception.ApplicationException; |
| | | |
| | | import java.util.Map; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.util.function.Supplier; |
| | | |
| | | /** |
| | | * 缓存 |
| | | * |
| | | */ |
| | | public class Cache { |
| | | |
| | | private Map<String,Object> caches=new ConcurrentHashMap<>(); |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | public <T>T get(Class<T> prototype) { |
| | | return (T) get(prototype.getName()); |
| | | } |
| | | |
| | | public Object get(String key) { |
| | | return get(key,true); |
| | | } |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | public <T>T get(String key,Supplier<T> func){ |
| | | if(!hasKey(key)) { |
| | | put(key,func.get()); |
| | | } |
| | | return (T)get(key); |
| | | } |
| | | |
| | | public Object get(String key,boolean exist) { |
| | | if(exist) { |
| | | if(!hasKey(key)) { |
| | | throw new ApplicationException(this+"-找不到缓存对象:"+key); |
| | | } |
| | | } |
| | | return caches.get(key); |
| | | } |
| | | |
| | | public Cache put(Object value) { |
| | | String key=value.getClass().getName(); |
| | | put(key,value); |
| | | return this; |
| | | } |
| | | |
| | | public Cache put(String key,Object value) { |
| | | put(key, value,true); |
| | | return this; |
| | | } |
| | | |
| | | public Cache put(String key,Object value,boolean exist) { |
| | | if(exist) { |
| | | if(hasKey(key)) { |
| | | throw new ApplicationException(this+"-缓存"+key+"已存在"); |
| | | } |
| | | } |
| | | caches.put(key, value); |
| | | return this; |
| | | } |
| | | |
| | | public boolean hasKey(Class<?> prototype) { |
| | | return hasKey(prototype.getName()); |
| | | } |
| | | |
| | | public boolean hasKey(String key) { |
| | | return caches.containsKey(key); |
| | | } |
| | | |
| | | } |
| | | package com.zy.asrs.framework.common;
|
| | |
|
| | | import com.zy.asrs.framework.exception.ApplicationException;
|
| | |
|
| | | import java.util.Map;
|
| | | import java.util.concurrent.ConcurrentHashMap;
|
| | | import java.util.function.Supplier;
|
| | |
|
| | | /**
|
| | | * 缓存
|
| | | *
|
| | | */
|
| | | public class Cache {
|
| | |
|
| | | private Map<String,Object> caches=new ConcurrentHashMap<>();
|
| | | |
| | | @SuppressWarnings("unchecked")
|
| | | public <T>T get(Class<T> prototype) {
|
| | | return (T) get(prototype.getName());
|
| | | }
|
| | | |
| | | public Object get(String key) {
|
| | | return get(key,true);
|
| | | }
|
| | | |
| | | @SuppressWarnings("unchecked")
|
| | | public <T>T get(String key,Supplier<T> func){
|
| | | if(!hasKey(key)) {
|
| | | put(key,func.get());
|
| | | }
|
| | | return (T)get(key);
|
| | | }
|
| | | |
| | | public Object get(String key,boolean exist) {
|
| | | if(exist) {
|
| | | if(!hasKey(key)) {
|
| | | throw new ApplicationException(this+"-找不到缓存对象:"+key);
|
| | | }
|
| | | }
|
| | | return caches.get(key);
|
| | | }
|
| | | |
| | | public Cache put(Object value) {
|
| | | String key=value.getClass().getName();
|
| | | put(key,value);
|
| | | return this;
|
| | | }
|
| | | |
| | | public Cache put(String key,Object value) {
|
| | | put(key, value,true);
|
| | | return this;
|
| | | }
|
| | | |
| | | public Cache put(String key,Object value,boolean exist) {
|
| | | if(exist) {
|
| | | if(hasKey(key)) {
|
| | | throw new ApplicationException(this+"-缓存"+key+"已存在");
|
| | | }
|
| | | }
|
| | | caches.put(key, value);
|
| | | return this;
|
| | | }
|
| | | |
| | | public boolean hasKey(Class<?> prototype) {
|
| | | return hasKey(prototype.getName());
|
| | | }
|
| | | |
| | | public boolean hasKey(String key) {
|
| | | return caches.containsKey(key);
|
| | | }
|
| | | |
| | | }
|