> 文章列表 > 静态工具类中如何注入spring容器

静态工具类中如何注入spring容器

静态工具类中如何注入spring容器

前提

spring容器无法在静态代码中直接依赖注入的,因为静态代码在类的初始化时就已经加载的。

方法

/*** 借助SpringContextHolder工具类,里面实现了ApplicationContextAware接口,注入Context到静态变量中*/
public class RedisTemplateUtil {public static RedisTemplate redisTemplate = SpringContextHolder.getBean("redisTemplate");}

方法二

/*** 通过其set方法进行注入,需要借助@Autowired,然后加上@Component,作为spring扫描的bean组件*/@Component
public class RedisTemplateUtil {public static RedisTemplate redisTemplate;@Autowiredpublic void setRedisTemplate(RedisTemplate redisTemplate){RedisTemplateUtil.redisTemplate = redisTemplate;}
}

调用

	@GetMapping("/test")public void test(){String str = (String) RedisTemplateUtil.redisTemplate.opsForValue().get(GlobalParamConstants.GLOBAL_PARAM_KEY + GlobalParamConstants.SYS_PARAM);System.out.println(str);}