diff --git a/doc/视频教程.md b/doc/视频教程.md index b1ac183c..2cfd63ba 100644 --- a/doc/视频教程.md +++ b/doc/视频教程.md @@ -26,6 +26,8 @@ javassist字节码增强,asm,cglib,ByteBuddy,了解 - storage原理讲解 ``` -通过spring的PathMatchingResourcePatternResolver扫描excel文件位置 - +通过spring的PathMatchingResourcePatternResolver扫描excel文件位置,有方法可以直接获取Resource +spring的Resource抽象,spring对文件的抽象 +apache的poi,poi可以解析excel +通过spring的ConversionService去解析excel单元格的内容,通过ConditionalGenericConverter,Converter接口自定义解析规则 ``` \ No newline at end of file diff --git a/storage/src/main/java/com/zfoo/storage/manager/StorageManager.java b/storage/src/main/java/com/zfoo/storage/manager/StorageManager.java index f54bf413..b46b73d9 100644 --- a/storage/src/main/java/com/zfoo/storage/manager/StorageManager.java +++ b/storage/src/main/java/com/zfoo/storage/manager/StorageManager.java @@ -74,7 +74,11 @@ public class StorageManager implements IStorageManager { @Override public void initBefore() { var resourceDefinitionMap = new HashMap, ResourceDef>(); + + // 扫描Excel的class类文件 var clazzNameSet = scanResourceAnno(storageConfig.getScanPackage()); + + // 通过class类文件扫描excel文件地址 for (var clazzName : clazzNameSet) { Class resourceClazz; try { diff --git a/storage/src/main/java/com/zfoo/storage/model/vo/Storage.java b/storage/src/main/java/com/zfoo/storage/model/vo/Storage.java index 20161f59..c44a76ef 100644 --- a/storage/src/main/java/com/zfoo/storage/model/vo/Storage.java +++ b/storage/src/main/java/com/zfoo/storage/model/vo/Storage.java @@ -33,7 +33,9 @@ public class Storage { private Class clazz; private final Map dataMap = new HashMap<>(); + // 非唯一索引 private final Map>> indexMap = new HashMap<>(); + // 唯一索引 private final Map> uniqueIndexMap = new HashMap<>(); private IdDef idDef;