基于中科视拓的seetaface6封装的免费人脸识别项目后端接口
shentao
2025-09-22 4e24fd913e7b048436aa7e5001cf875baac81ff5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.code2roc.fastface.db;
 
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.code2roc.fastface.util.ScanUtil;
import com.code2roc.fastface.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
@Component
public class MapperBeanManage {
    @Autowired
    private ApplicationContext applicationContext;
 
    private HashMap<String, BaseMapper> mapperDic;
 
    public MapperBeanManage() {
        mapperDic = new HashMap<>();
    }
 
    public void initMapperBean(List<Class> runtimeClassList) {
        List<Class> filterClassList = new ArrayList<>();
        filterClassList.add(BaseModel.class);
        List<Class<?>> dataBaseClassList = new ArrayList<>();
        for (Class clazz:runtimeClassList) {
            dataBaseClassList.addAll(ScanUtil.getAllClassByPackageName(clazz.getPackage(), filterClassList));
        }
        Map<String, BaseMapper> res = applicationContext.getBeansOfType(BaseMapper.class);
        for (Class clazz : dataBaseClassList) {
            String tableNameValue = StringUtil.replaceLast(clazz.getSimpleName().toLowerCase(),"do","");
            for (Map.Entry en : res.entrySet()) {
                String mapperTableNameValue =  StringUtil.replaceLast(en.getKey().toString().toLowerCase(),"dao","");
                if (tableNameValue.equals(mapperTableNameValue)) {
                    BaseMapper mapper = (BaseMapper) en.getValue();
                    mapperDic.put(tableNameValue, mapper);
                    break;
                }
            }
        }
        System.out.println("扫描并初始化mapperBean对象成功,mapper数量:" + mapperDic.keySet().size() + "个");
    }
 
    public BaseMapper getMapper(String tableName) {
        return mapperDic.get(tableName);
    }
}