diff --git a/orm/src/main/java/com/zfoo/orm/cache/EntityCaches.java b/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java similarity index 98% rename from orm/src/main/java/com/zfoo/orm/cache/EntityCaches.java rename to orm/src/main/java/com/zfoo/orm/cache/EntityCache.java index 1c41a2c7..bdecded7 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/EntityCaches.java +++ b/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java @@ -44,9 +44,9 @@ import java.util.stream.Collectors; * @author godotg * @version 3.0 */ -public class EntityCaches, E extends IEntity> implements IEntityCaches { +public class EntityCache, E extends IEntity> implements IEntityCache { - private static final Logger logger = LoggerFactory.getLogger(EntityCaches.class); + private static final Logger logger = LoggerFactory.getLogger(EntityCache.class); private static final int BATCH_SIZE = 512; @@ -54,7 +54,7 @@ public class EntityCaches, E extends IEntity> impl private final LoadingCache> cache; - public EntityCaches(EntityDef entityDef) { + public EntityCache(EntityDef entityDef) { this.entityDef = entityDef; this.cache = Caffeine.newBuilder() diff --git a/orm/src/main/java/com/zfoo/orm/cache/IEntityCaches.java b/orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java similarity index 94% rename from orm/src/main/java/com/zfoo/orm/cache/IEntityCaches.java rename to orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java index c15e9193..dfcb6875 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/IEntityCaches.java +++ b/orm/src/main/java/com/zfoo/orm/cache/IEntityCache.java @@ -21,7 +21,7 @@ import java.util.function.BiConsumer; * @author godotg * @version 3.0 */ -public interface IEntityCaches, E extends IEntity> { +public interface IEntityCache, E extends IEntity> { /** * 从数据库中加载数据到缓存,如果数据库不存在则返回一个id为空的默认值,并且将这个默认值加入缓存 diff --git a/orm/src/main/java/com/zfoo/orm/cache/persister/AbstractOrmPersister.java b/orm/src/main/java/com/zfoo/orm/cache/persister/AbstractOrmPersister.java index e9bdd6c0..d6e41fe3 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/persister/AbstractOrmPersister.java +++ b/orm/src/main/java/com/zfoo/orm/cache/persister/AbstractOrmPersister.java @@ -13,7 +13,7 @@ package com.zfoo.orm.cache.persister; -import com.zfoo.orm.cache.EntityCaches; +import com.zfoo.orm.cache.EntityCache; import com.zfoo.orm.model.EntityDef; /** @@ -24,10 +24,10 @@ public abstract class AbstractOrmPersister implements IOrmPersister { protected EntityDef entityDef; - protected EntityCaches entityCaches; + protected EntityCache entityCaches; - public AbstractOrmPersister(EntityDef entityDef, EntityCaches entityCaches) { + public AbstractOrmPersister(EntityDef entityDef, EntityCache entityCaches) { this.entityDef = entityDef; this.entityCaches = entityCaches; } diff --git a/orm/src/main/java/com/zfoo/orm/cache/persister/CronOrmPersister.java b/orm/src/main/java/com/zfoo/orm/cache/persister/CronOrmPersister.java index 6247dbdd..76e29cf4 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/persister/CronOrmPersister.java +++ b/orm/src/main/java/com/zfoo/orm/cache/persister/CronOrmPersister.java @@ -15,7 +15,7 @@ package com.zfoo.orm.cache.persister; import com.zfoo.event.manager.EventBus; import com.zfoo.orm.OrmContext; -import com.zfoo.orm.cache.EntityCaches; +import com.zfoo.orm.cache.EntityCache; import com.zfoo.orm.model.EntityDef; import com.zfoo.protocol.exception.ExceptionUtils; import com.zfoo.scheduler.manager.SchedulerBus; @@ -45,7 +45,7 @@ public class CronOrmPersister extends AbstractOrmPersister { private final CronExpression cronExpression; - public CronOrmPersister(EntityDef entityDef, EntityCaches entityCaches) { + public CronOrmPersister(EntityDef entityDef, EntityCache entityCaches) { super(entityDef, entityCaches); this.cronExpression = CronExpression.parse(entityDef.getPersisterStrategy().getConfig()); } diff --git a/orm/src/main/java/com/zfoo/orm/cache/persister/TimeOrmPersister.java b/orm/src/main/java/com/zfoo/orm/cache/persister/TimeOrmPersister.java index f45f2b72..77dae89b 100644 --- a/orm/src/main/java/com/zfoo/orm/cache/persister/TimeOrmPersister.java +++ b/orm/src/main/java/com/zfoo/orm/cache/persister/TimeOrmPersister.java @@ -15,7 +15,7 @@ package com.zfoo.orm.cache.persister; import com.zfoo.event.manager.EventBus; import com.zfoo.orm.OrmContext; -import com.zfoo.orm.cache.EntityCaches; +import com.zfoo.orm.cache.EntityCache; import com.zfoo.orm.model.EntityDef; import com.zfoo.protocol.util.StringUtils; import com.zfoo.scheduler.manager.SchedulerBus; @@ -33,7 +33,7 @@ public class TimeOrmPersister extends AbstractOrmPersister { */ private final long rate; - public TimeOrmPersister(EntityDef entityDef, EntityCaches entityCaches) { + public TimeOrmPersister(EntityDef entityDef, EntityCache entityCaches) { super(entityDef, entityCaches); this.rate = Long.parseLong(entityDef.getPersisterStrategy().getConfig()); if (this.rate <= 0) { diff --git a/orm/src/main/java/com/zfoo/orm/config/PersisterTypeEnum.java b/orm/src/main/java/com/zfoo/orm/config/PersisterTypeEnum.java index a3d8f696..7ca9d29b 100644 --- a/orm/src/main/java/com/zfoo/orm/config/PersisterTypeEnum.java +++ b/orm/src/main/java/com/zfoo/orm/config/PersisterTypeEnum.java @@ -12,7 +12,7 @@ package com.zfoo.orm.config; -import com.zfoo.orm.cache.EntityCaches; +import com.zfoo.orm.cache.EntityCache; import com.zfoo.orm.cache.persister.CronOrmPersister; import com.zfoo.orm.cache.persister.IOrmPersister; import com.zfoo.orm.cache.persister.TimeOrmPersister; @@ -27,19 +27,19 @@ public enum PersisterTypeEnum { QUEUE { @Override - public IOrmPersister createPersister(EntityDef entityDef, EntityCaches entityCaches) { + public IOrmPersister createPersister(EntityDef entityDef, EntityCache entityCaches) { return null; } }, CRON { @Override - public IOrmPersister createPersister(EntityDef entityDef, EntityCaches entityCaches) { + public IOrmPersister createPersister(EntityDef entityDef, EntityCache entityCaches) { return new CronOrmPersister(entityDef, entityCaches); } }, TIME { @Override - public IOrmPersister createPersister(EntityDef entityDef, EntityCaches entityCaches) { + public IOrmPersister createPersister(EntityDef entityDef, EntityCache entityCaches) { return new TimeOrmPersister(entityDef, entityCaches); } }; @@ -54,6 +54,6 @@ public enum PersisterTypeEnum { throw new IllegalArgumentException(StringUtils.format("无效的持久化类型[persisterType:{}]", persisterType)); } - public abstract IOrmPersister createPersister(EntityDef entityDef, EntityCaches entityCaches); + public abstract IOrmPersister createPersister(EntityDef entityDef, EntityCache entityCaches); } diff --git a/orm/src/main/java/com/zfoo/orm/manager/IOrmManager.java b/orm/src/main/java/com/zfoo/orm/manager/IOrmManager.java index ced81b29..74fbf1f0 100644 --- a/orm/src/main/java/com/zfoo/orm/manager/IOrmManager.java +++ b/orm/src/main/java/com/zfoo/orm/manager/IOrmManager.java @@ -15,7 +15,7 @@ package com.zfoo.orm.manager; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoCollection; -import com.zfoo.orm.cache.IEntityCaches; +import com.zfoo.orm.cache.IEntityCache; import com.zfoo.orm.model.IEntity; import org.bson.Document; @@ -39,9 +39,9 @@ public interface IOrmManager { */ MongoClient mongoClient(); - > IEntityCaches getEntityCaches(Class clazz); + > IEntityCache getEntityCaches(Class clazz); - Collection> getAllEntityCaches(); + Collection> getAllEntityCaches(); /** * 基于对象的orm操作 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 30f4fe88..0d474c61 100644 --- a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java +++ b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java @@ -24,8 +24,8 @@ import com.mongodb.client.model.IndexOptions; import com.mongodb.client.model.Indexes; import com.zfoo.orm.OrmContext; import com.zfoo.orm.anno.*; -import com.zfoo.orm.cache.EntityCaches; -import com.zfoo.orm.cache.IEntityCaches; +import com.zfoo.orm.cache.EntityCache; +import com.zfoo.orm.cache.IEntityCache; import com.zfoo.orm.config.OrmConfig; import com.zfoo.orm.model.EntityDef; import com.zfoo.orm.model.IEntity; @@ -72,7 +72,7 @@ public class OrmManager implements IOrmManager { */ private final Map, Boolean> allEntityCachesUsableMap = new HashMap<>(); - private final Map>, IEntityCaches> entityCachesMap = new HashMap<>(); + private final Map>, IEntityCache> entityCachesMap = new HashMap<>(); private final Map>, String> collectionNameMap = new ConcurrentHashMap<>(); @@ -89,7 +89,7 @@ public class OrmManager implements IOrmManager { var entityDefMap = entityClass(); for (var entityDef : entityDefMap.values()) { - var entityCaches = new EntityCaches(entityDef); + var entityCaches = new EntityCache(entityDef); entityCachesMap.put(entityDef.getClazz(), entityCaches); allEntityCachesUsableMap.put(entityDef.getClazz(), false); } @@ -199,7 +199,7 @@ public class OrmManager implements IOrmManager { Type[] types = ((ParameterizedType) type).getActualTypeArguments(); Class> entityClazz = (Class>) types[1]; - IEntityCaches entityCaches = entityCachesMap.get(entityClazz); + IEntityCache entityCaches = entityCachesMap.get(entityClazz); if (entityCaches == null) { throw new RunException("实体缓存对象不存在,请检查配置[entity-package:{}]和[entityCaches:{}]的位置是否正确", ormConfig.getEntityPackage(), entityClazz); @@ -226,7 +226,7 @@ public class OrmManager implements IOrmManager { } @Override - public > IEntityCaches getEntityCaches(Class clazz) { + public > IEntityCache getEntityCaches(Class clazz) { var usable = allEntityCachesUsableMap.get(clazz); if (usable == null) { throw new RunException("没有定义[]的EntityCaches,无法获取", clazz.getCanonicalName()); @@ -234,11 +234,11 @@ public class OrmManager implements IOrmManager { if (!usable) { throw new RunException("Orm没有使用[]的EntityCaches,为了节省内存提前释放了它;只有使用EntityCachesInjection注解的Entity才能被动态获取", clazz.getCanonicalName()); } - return (IEntityCaches) entityCachesMap.get(clazz); + return (IEntityCache) entityCachesMap.get(clazz); } @Override - public Collection> getAllEntityCaches() { + public Collection> getAllEntityCaches() { return Collections.unmodifiableCollection(entityCachesMap.values()); } @@ -294,7 +294,7 @@ public class OrmManager implements IOrmManager { String packageSearchPath = prefixPattern + scanLocation.replace(StringUtils.PERIOD, StringUtils.SLASH) + StringUtils.SLASH + suffixPattern; Resource[] resources = resourcePatternResolver.getResources(packageSearchPath); var result = new HashSet>(); - String name = EntityCache.class.getName(); + String name = com.zfoo.orm.anno.EntityCache.class.getName(); for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource); @@ -320,7 +320,7 @@ public class OrmManager implements IOrmManager { var cacheStrategies = ormConfig.getCaches(); var persisterStrategies = ormConfig.getPersisters(); - var entityCache = clazz.getAnnotation(EntityCache.class); + var entityCache = clazz.getAnnotation(com.zfoo.orm.anno.EntityCache.class); var cache = entityCache.cache(); var cacheStrategyOptional = cacheStrategies.stream().filter(it -> it.getStrategy().equals(cache.value())).findFirst(); AssertionUtils.isTrue(cacheStrategyOptional.isPresent(), "实体类Entity[{}]没有找到缓存策略[{}]", clazz.getSimpleName(), cache.value()); @@ -365,9 +365,9 @@ public class OrmManager implements IOrmManager { private void analyze(Class clazz) { // 是否实现了IEntity接口 - AssertionUtils.isTrue(IEntity.class.isAssignableFrom(clazz), "被[{}]注解标注的实体类[{}]没有实现接口[{}]", EntityCache.class.getName(), clazz.getCanonicalName(), IEntity.class.getCanonicalName()); + AssertionUtils.isTrue(IEntity.class.isAssignableFrom(clazz), "被[{}]注解标注的实体类[{}]没有实现接口[{}]", com.zfoo.orm.anno.EntityCache.class.getName(), clazz.getCanonicalName(), IEntity.class.getCanonicalName()); // 实体类Entity必须被注解EntityCache标注 - AssertionUtils.notNull(clazz.getAnnotation(EntityCache.class), "实体类Entity[{}]必须被注解[{}]标注", clazz.getCanonicalName(), EntityCache.class.getName()); + AssertionUtils.notNull(clazz.getAnnotation(com.zfoo.orm.anno.EntityCache.class), "实体类Entity[{}]必须被注解[{}]标注", clazz.getCanonicalName(), com.zfoo.orm.anno.EntityCache.class.getName()); // 校验entity格式 var entitySubClassMap = new HashMap, Set>>(); diff --git a/orm/src/test/java/com/zfoo/orm/cache/EntityCachesTest.java b/orm/src/test/java/com/zfoo/orm/cache/EntityCachesTest.java index e3531e55..19cbbb66 100644 --- a/orm/src/test/java/com/zfoo/orm/cache/EntityCachesTest.java +++ b/orm/src/test/java/com/zfoo/orm/cache/EntityCachesTest.java @@ -36,7 +36,7 @@ public class EntityCachesTest { var context = new ClassPathXmlApplicationContext("application.xml"); // 动态去拿到UserEntity的EntityCaches - var userEntityCaches = (IEntityCaches) OrmContext.getOrmManager().getEntityCaches(UserEntity.class); + var userEntityCaches = (IEntityCache) OrmContext.getOrmManager().getEntityCaches(UserEntity.class); for (var i = 1; i <= 10; i++) { var entity = userEntityCaches.load((long) i); diff --git a/orm/src/test/java/com/zfoo/orm/cache/UserManager.java b/orm/src/test/java/com/zfoo/orm/cache/UserManager.java index 92f70fc2..57374a97 100644 --- a/orm/src/test/java/com/zfoo/orm/cache/UserManager.java +++ b/orm/src/test/java/com/zfoo/orm/cache/UserManager.java @@ -25,6 +25,6 @@ import org.springframework.stereotype.Component; public class UserManager { @EntityCacheAutowired - public IEntityCaches userEntityCaches; + public IEntityCache userEntityCaches; }