如下代码,出错了
public class MyController{
@Autowired
private RedisTemplate<String, String> redisTemplate;
SetOperations<String, String> setOperations;
HashOperations<String, String, String> hashOperations;
{
setOperations = redisTemplate.opsForSet();
hashOperations = redisTemplate.opsForHash();
}
是不是注解没有初始化块先执行? 这种状况如何改?
8 回答

繁星点点滴滴
TA贡献1803条经验 获得超3个赞
Spring在注入时,首先初始化类,然后根据@Autowired之类的注解进行注入。
@PostConstruct
public void init(){
setOperations = redisTemplate.opsForSet();
hashOperations = redisTemplate.opsForHash();
}
使用@PostConstruct注解。

米脂
TA贡献1836条经验 获得超3个赞
初始化优先级比较高,仅次于静态
这里可以使用PostConstruct注解,顺序上
Constructor >> @Autowired >> @PostConstruct
添加回答
举报
0/150
提交
取消