在工具类中直接注入,在调用工具类方法时会报空指针异常,需要设置bin的注入。
方法一:
RedisUtils 添加 @Component 声明其为bean组件,放到set方法中,使用 @Autowired注入启动类。
/**
* The type Redis utils.
*
* @author lxp
* @date 2019 -08-13 14:34:20
*/
@Component
public class RedisUtils {
/**
* 注入redisTemplate bean
*/
private static RedisTemplate<String,Object> redisTemplate;
@Autowired
public void setRedisService(RedisTemplate<String,Object> redisTemplate){
RedisUtils.redisTemplate = redisTemplate;
}
}
方法二:
使用@PostConstruct注解,被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的init()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前执行。
/**
* The type Redis utils.
*
* @author lxp
* @date 2019 -08-13 14:34:20
*/
@Component
public class RedisUtils {
//声明一个静态的属性(加上注解@Autowired)
@Autowired
private RedisTemplate<String,Object> template;
//声明一个非静态的属性
private static RedisTemplate<String,Object> redisTemplate;
@PostConstruct
public void init(){
redisTemplate = template;
}
}