1. 程式人生 > 其它 >什麼是spring的迴圈依賴問題?

什麼是spring的迴圈依賴問題?

簡單說句。

今天報這個問題的時候我看了下我redis配置的寫法:

@Configuration
public class RedisConfig {
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    /**
     * 去掉key前面的亂碼
     * @return
     */
    @Bean
    public RedisTemplate<String, Object> redisTemplateInit(RedisConnectionFactory redisConnectionFactory) {
        //設定序列化Key的例項化物件
        redisTemplate.setConnectionFactory(redisConnectionFactory);

        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}

這樣寫,效果就是裝載配置類,spring會從容器裡找RedisTemplate,但是此時RedisTemplate還沒進入容器,而RedisTemplate進入容器又要求RedisConfig,就迴圈了。

正確寫法如下:

@Configuration
public class RedisConfig {
//    @Autowired
//    private RedisTemplate<String, Object> redisTemplate;

    /**
     * 去掉key前面的亂碼
     * @return
     */
    @Bean
    public RedisTemplate<String, Object> redisTemplateInit(RedisConnectionFactory redisConnectionFactory) {
        //設定序列化Key的例項化物件
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);

        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}

本文來自部落格園,作者:imissinstagram,轉載請註明原文連結:https://www.cnblogs.com/LostSecretGarden/p/15627836.html