All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zodiac.autoconfigure.feign.context.RedisReferenceRepositoryAutoConfiguration Maven / Gradle / Ivy

package org.zodiac.autoconfigure.feign.context;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.annotation.Order;
import org.zodiac.autoconfigure.feign.condition.ConditionalOnFeignConsumerEnabled;

/**
 * Notes: There is no need to check the automatic configuration only in the 'SpringBoot + Feign' environment, because it
 * is required in both 'SpringBoot + Feign' and 'SpringCloud + Feign'.
 *
 */
@SpringBootConfiguration
@ConditionalOnFeignConsumerEnabled
@ConditionalOnClass(value = {feign.Client.class, org.zodiac.feign.core.FeignConsumerClientProvider.class})
public class RedisReferenceRepositoryAutoConfiguration {

    public RedisReferenceRepositoryAutoConfiguration() {
        super();
    }

    @Bean
    @ConditionalOnMissingBean
    protected org.zodiac.feign.core.context.RedisReferenceRepositoryConfigurer redisReferenceRepositoryConfigurer() {
        return new org.zodiac.feign.core.context.RedisReferenceRepositoryConfigurer();
    }

    /*优先级最高。*/
    @Bean
    @Order(value = 1)
    @ConditionalOnClass(value = {org.springframework.data.redis.core.RedisOperations.class})
    @ConditionalOnMissingBean(value = {org.zodiac.core.remote.context.RemoteContextHolder.ReferenceRepository.class})
    protected org.zodiac.core.remote.context.RemoteContextHolder.ReferenceRepository redisTemplateReferenceRepository(org.zodiac.feign.core.context.RedisReferenceRepositoryConfigurer redisReferenceRepositoryConfigurer,
        ObjectProvider> redisTemplateProvider) {
        return redisReferenceRepositoryConfigurer.redisTemplateReferenceRepository(redisTemplateProvider.getIfAvailable());
    }

    @Bean
    @Order(value = 2)
    @ConditionalOnClass(value = {redis.clients.jedis.Jedis.class, org.zodiac.redis.RedisClientType.class})
    @ConditionalOnMissingBean(value = {org.zodiac.core.remote.context.RemoteContextHolder.ReferenceRepository.class})
    protected org.zodiac.core.remote.context.RemoteContextHolder.ReferenceRepository jedisReferenceRepository(org.zodiac.feign.core.context.RedisReferenceRepositoryConfigurer redisReferenceRepositoryConfigurer,
        ObjectProvider jedisClientProvider) {
        return redisReferenceRepositoryConfigurer.jedisReferenceRepository(jedisClientProvider.getIfAvailable());
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy