当前位置: 代码网 > it编程>编程语言>Java > SpringBoot项目启动时如何将需要数据添加到redis缓存

SpringBoot项目启动时如何将需要数据添加到redis缓存

2026年04月12日 Java 我要评论
首先项目启动时加载这里使用了一个java注解@postconstruct@postconstruct该注解被用来修饰一个非静态的void()方法。被@postconstruct修饰的方法会在服务器加载

首先项目启动时加载

这里使用了一个java注解@postconstruct@postconstruct该注解被用来修饰一个非静态的void()方法。

被@postconstruct修饰的方法会在服务器加载servlet的时候运行,并且只会被服务器执行一次。

    @postconstruct
    public void init(){
        loadingcache();
    }

loadingcache方法里就是添加缓存的代码

通过springutils.getbean(rediscache.class).setcacheobject(key,value)来添加缓存:

@override
    public void loadingcache(){
        dvcode dvcode = new dvcode();
        list<dvcode> codelist = dvcodemapper.selectdvcodelist(dvcode);
        codelist.stream().foreach(list->{
            springutils.getbean(rediscache.class).setcacheobject(constants.name_key+list.getcode(),list.getname());
        });
    }

name_key是constants里面添加的

是最终缓存到redis中的key值;

    /***
     code cache key
     */
    public static final string name_key = "code_name:";

这个时候就数据缓存到redis的操作就已经完成了,重新启动项目后,在redis数据库中就可以看到key为code_name的数据了。

怎么取用数据?

rediscache.getcacheobject(getcachekey2name(code));
 public static string getcachekey2name(string configkey)
    {
        return constants.name_key + configkey;
    }

最后添加一个清空缓存数据的方法

	@override
    public void clearareacodecache(){
        collection<string> keys = springutils.getbean(rediscache.class).keys(constants.name_key + "*");
        springutils.getbean(rediscache.class).deleteobject(keys);
    }

如果我们在项目启动后更改了数据

又不想重新启动项目,有了添加和清空,这个问题就很好解决了:

	@deletemapping("/refreshcache")
    public ajaxresult refreshcache()
    {
        dvcodeservice.resetdictcache();
        return ajaxresult.success();
    }

前端搞个按钮什么的,调用一下这个刷新缓存的接口就好啦。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com