SpringBoot 程序启动时将数据库的字典表加载进内存中

1.背景

实际开发中,我们需要将查询出来的字典值以字典名字的形式响应给前端,

如1表示男那么,就要在程序中将1转变为男.....

2.字典表结构

SpringBoot 程序启动时将数据库的字典表加载进内存中_第1张图片

 

3.实现代码

@Component
@Slf4j
public class CacheDicUtils {
    private static Map dataMap = new HashMap<>();
    @Autowired
    private SysDictionaryMapper sysDictionaryMapper;

    @PostConstruct
    public void init() {
        QueryWrapper wrapper = new QueryWrapper<>();

        List list = sysDictionaryMapper.selectList(wrapper);
        for (SysDictionary obj : list) {
            try {
                dataMap.put(obj.getType() + obj.getValue(), obj.getName());
            } catch (Exception e) {
                log.error("初始化字段数据失败:e={},object={}", obj);
            }
        }
    }

    public static String getName(String type, String value) {
        String name = dataMap.get(type + value);
        if (StrUtil.isEmpty(name)) {
            return value;
        }
        return name;
    }
}

4.使用

String productTypeName = CacheDicUtils.getName("BusinessType", businessType + "");

完美!

你可能感兴趣的:(问题解决,spring,boot,数据库,后端)