靜態屬性不能直接注入,可以通過其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); }