zoukankan      html  css  js  c++  java
  • SpringBoot 项目在静态工具类中注入 RedisTemplate

    静态属性不能直接注入,可以通过其set方法进行注入。(注意生成的set方法需要去掉static)。

    在工具类里直接注入RedisTemplate,两种方法:

    (1)使用@Autowired

        private static RedisTemplate redisTemplate;
    
        @Autowired
        public void setRedisTemplate(RedisTemplate redisTemplate) {
            JwtUtil.redisTemplate = redisTemplate;
        }

    (2)使用@Resource

        private static RedisTemplate redisTemplate;
    
        @Resource
        public void setRedisTemplate(RedisTemplate redisTemplate) {
            JwtUtil.redisTemplate = redisTemplate;
        }

    接着需要将该工具类作为一个spring管理的bean,这个必须,不然无法注入成功。

    只需要在该工具类上添加注解 @Component

    完整示例代码:

    @Component
    public class JwtUtil {

       private static RedisTemplate redisTemplate; @Autowired public void setRedisTemplate(RedisTemplate redisTemplate) { JwtUtil.redisTemplate = redisTemplate; } }

    接着就可以正常使用了。

    还有更简单的方法,可以直接使用 SpringContextHolder,不过需要做一些额外配置。

    public class JwtUtil {
    
        private static RestTemplate restTemplate = SpringContextHolder.getBean(RestTemplate.class);
    
    }
  • 相关阅读:
    linq中的AsEnumerable()方法
    c# 一个匿名对象中包含多个子对象的处理方式
    jenkins的安装与启动
    牛客网-2018年湘潭大学程序设计竞赛-F
    poj-1149(最大流)
    hdu-2255(带权二分图)
    bzoj-1191(二分图最大匹配)
    codevs2822
    hdu 5652(并查集)
    hdu—3861(tarjan+二分图)
  • 原文地址:https://www.cnblogs.com/wbxk/p/10676482.html
Copyright © 2011-2022 走看看