JAVA项目字典与缓存搭配使用方法解析

 更新时间:2020年09月27日 09:10:07   作者:海绵般汲取  
这篇文章主要介绍了JAVA项目字典与缓存搭配使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

字典数据是什么?

 这里说了字典不是软件工程中说的数据字典。

字典数据:用于动态设置某对象的属性是属于在一个可列举的数据范围内的某一类型数据,使用字典类型作为该类别属性的唯一标识

如:用户类型:学生,老师,家长,校长等

有什么作用?

  字典数据由两个表组成:字典类型表 dict_type,字典类型数据表 dict_data

  这个数据相当于java中的枚举类,可以被使用于前端的数据展示,下拉框数据集使用。

没有数据字典时业务操作方法:

  定义学生枚举类,在代码中使用枚举类的key进行数据保存,在查询数据后,转换key对应的中文名称label标签返回给前端。

  缺点:如新增用户类型,修改学生类型对应中文名称时,需要修改代码。

使用字典时业务操作方法。  

  后端业务数据存储的是字典类型的key值,即label标签表示学生类型对应的key值 student,

    新增数据时前端通过下拉菜单获取学生类型某一个类型key进行新增,查询数据时根据字典数据表的用户类型作为下拉框查询条件选择。

  优点:当key为student的数据中文名称发生改变时,不需要后端进行代码修改。

    如新增用户时,设置用户的类型,下拉框的数据可以从数据库获取数据,不用前端关心数据集的内容,

在业务中使用

不使用缓存的方式使用字典数据:

  业务中使用方式,返回用户列表数据,将用户类型的字典数据从数据库中查询出来,然后进行转换。

  在前端查询数据时,前端查询用户类型的下拉数据集,作为条件,传类型key值作为查询条件查询数据。

与缓存搭配使用字典数据。

自己控制数据缓存。灵活性高:Ehcache,Redis等内存缓存框架进行处理。

  如果是单机项目。可以使用内存缓存。

  缓存的使用方式有多种:

    如使用Mybatis自带的一级缓存,二级缓存。但如果使用的是不同的SqlSession进行数据查询,这不会用到一级缓存。

    单机项目最好还是使用内存缓存框架,如Ehcache,用Map来存储所有字典数据。在更新字典数据后,直接整个更新缓存数据。

{
  "字典类型": [
    {
      "key": "label"
    }
  ]
}

  如果是分布式(虽然没实际用过):可以使用redis这种外置的非关系型数据库存储缓存数据。即一个类型一个key来存储数据。如

  RedisUtils.put( "dict:type_user_type" ) RedisUtils.get( "dict:type_user_type" )

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot自定义配置项过程

    SpringBoot自定义配置项过程

    在SpringBoot项目中,通过在application.properties文件中添加配置项,然后使用@ConfigurationProperties注解将这些配置项与实体Bean进行绑定,可以实现配置项与实体类字段的自动关联,进而方便地读取配置文件中的数据,这种方法不仅简化了配置管理
    2024-11-11
  • Spring JDBC 框架简介

    Spring JDBC 框架简介

    Spring JDBC 提供几种方法和数据库中相应的不同的类与接口。我将给出使用JdbcTemplate类框架的经典和最受欢迎的方法。本文给大家介绍Spring JDBC 框架的相关知识,感兴趣的朋友一起看看吧
    2021-12-12
  • alibaba seata服务端具体实现

    alibaba seata服务端具体实现

    seata是来处理分布式服务之间互相调用的事务问题,本文重点给大家介绍alibaba-seata实现方法,文中通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • java语言实现猜数字游戏

    java语言实现猜数字游戏

    这篇文章主要为大家详细介绍了java语言实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • SpringBoot中@ConfigurationProperties自动获取配置参数的流程步骤

    SpringBoot中@ConfigurationProperties自动获取配置参数的流程步骤

    当需要获取配置文件中很多参数时,我们可以定义参数的前缀相同,通过自动映射 进行获取配置文件中参数,所以本文给大家介绍了SpringBoot中@ConfigurationProperties自动获取配置参数的流程步骤,需要的朋友可以参考下
    2024-11-11
  • BeanDefinitionRegistryPostProcessor如何动态注册Bean到Spring

    BeanDefinitionRegistryPostProcessor如何动态注册Bean到Spring

    这篇文章主要介绍了BeanDefinitionRegistryPostProcessor如何动态注册Bean到Spring,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Dubbo3的Spring适配原理与初始化流程源码解析

    Dubbo3的Spring适配原理与初始化流程源码解析

    这篇文章主要为大家介绍了Dubbo3的Spring适配原理与初始化流程源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java8新特性之默认方法详解

    Java8新特性之默认方法详解

    JAVA8 所提供的默认方法,就是在接口上你可以定义某些方法的实现,下面这篇文章主要给大家介绍了关于Java8新特性之默认方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • Java设计模式UML之类图精解

    Java设计模式UML之类图精解

    在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法
    2022-02-02
  • 解决使用security和静态资源被拦截的问题

    解决使用security和静态资源被拦截的问题

    这篇文章主要介绍了解决使用security和静态资源被拦截的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08

最新评论