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

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM