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" )

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

相关文章

  • Java SpringMVC实现自定义拦截器

    Java SpringMVC实现自定义拦截器

    这篇文章主要为大家详细介绍了SpringMVC实现自定义拦截器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 基于@GetMapping注解携带参数的方式

    基于@GetMapping注解携带参数的方式

    这篇文章主要介绍了基于@GetMapping注解携带参数的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Java的NIO之通道channel详解

    Java的NIO之通道channel详解

    这篇文章主要介绍了Java的NIO之通道channel详解,通道channel由java.nio.channels 包定义的,Channel 表示IO源与目标打开的连接,Channel类类似于传统的"流",只不过Channel本身不能直接访问数据,Channel只能与Buffer进行交互,需要的朋友可以参考下
    2023-10-10
  • IntelliJ IDEA配置Tomcat(完整版图文教程)

    IntelliJ IDEA配置Tomcat(完整版图文教程)

    这篇文章主要介绍了IntelliJ IDEA配置Tomcat(完整版图文教程),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • OpenTelemetry Java SDK 高级用法解析

    OpenTelemetry Java SDK 高级用法解析

    这篇文章主要介绍了OpenTelemetry Java SDK 的高级用法示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 详解如何配置springboot跳转html页面

    详解如何配置springboot跳转html页面

    这篇文章主要介绍了详解如何配置springboot跳转html页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 浅析mybatis和spring整合的实现过程

    浅析mybatis和spring整合的实现过程

    据官方的说法,在Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持。因此由Mybatis社区自己开发了一个Mybatis-Spring用来满足Mybatis用户整合Spring的需求,下面通过Mybatis-Spring来整合Mybatis跟Spring的用法做介绍
    2015-10-10
  • Pattern.compile函数提取字符串中指定的字符(推荐)

    Pattern.compile函数提取字符串中指定的字符(推荐)

    这篇文章主要介绍了Pattern.compile函数提取字符串中指定的字符,使用的是Java中的Pattern.compile函数来实现对指定字符串的截取,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 详解rabbitmq使用springboot实现fanout模式

    详解rabbitmq使用springboot实现fanout模式

    这篇文章主要介绍了rabbitmq使用springboot实现fanout模式,Fanout特点是发布与订阅模式,是一种广播机制,它是没有路由key的模式,需要的朋友可以参考下
    2023-07-07
  • Java自带消息队列Queue的使用教程详细讲解

    Java自带消息队列Queue的使用教程详细讲解

    这篇文章主要介绍了Java自带消息队列Queue的使用教程,Java中的queue类是队列数据结构管理类,在它里边的元素可以按照添加它们的相同顺序被移除,队列通常以FIFO的方式排序各个元素,感兴趣想要详细了解可以参考下文
    2023-05-05

最新评论