静态属性不能直接注入,可以通过其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);

}

 

相关文章:

  • 2021-11-20
  • 2022-12-23
  • 2022-12-23
  • 2021-05-17
  • 2022-12-23
  • 2022-03-02
  • 2021-07-14
猜你喜欢
  • 2022-01-01
  • 2022-12-23
  • 2022-12-23
  • 2021-06-15
  • 2021-12-09
相关资源
相似解决方案