赞
踩
方法1:
利用set方法。首先声明一个静态属性(redisTemplate);
再写一个set方法,并添加Autowired注解,将传入的参数赋值静态属性。
当前类要加上注解@Component
private static RedisTemplate redisTemplate;
@Autowired
public void setRedisTemplate(RedisTemplate redisTemplate) {
UserUtils.redisTemplate = redisTemplate;
}
//静态方法调用
public static String getValue(){
return redisTemplate.opsForValue().get("wfCode");
}
方法2:
声明一个静态的属性(加上注解@Autowired),一个非静态的属性。
声明一个返回值为void并且不能抛出异常的方法,在其中将非静态属性赋值给静态属性。该方法上加上注解@PostConstruct
给当前的类加上@Component
private static RedisTemplate redisTool;
@Autowired
private RedisTemplate redisTemplate;
@PostConstruct
public void init() {
redisTool = redisTemplate;
}
//静态方法调用
public static String getValue(){
return redisTool.opsForValue().get("wfCode");
}
以上两种方式亲测有效,可以正常获取redisTemplate对象。
网上也有人给出其他的解决方法,但本人未测试,可参考。
方法3:
在springboot的启动类中,定义static变量ApplicationContext,利用容器的getBean方法获得依赖对象
1.在启动类中加入如下代码
2.使用时通过getBean方法来获取对象
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。