Spring boot @AutoConfigureBefore 不工作

问题描述

我依赖于我的自定义 Redis 启动器,它有一个配置类,我想在 RedissonAutoConfiguration 之前启动它,为此,我使用 @AutoConfigureBefore 注释,但是,它似乎不起作用并且仍然,RedissonAutoConfiguration 首先启动。

似乎唯一可行的方法添加 @ComponentScan(basePackage = "path_to_config"),但我不想在这里使用任何注释,我想在 RedissonAutoConfiguration 之前自行开始

我的 Redis 启动器中有 spring.factories 文件来使类自动配置

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
za.co.discovery.health.dhp.starter.redis.config.RedisClientConfiguration
package za.co.discovery.health.dhp.starter.redis.config;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

import java.util.List;


@Configuration
@AutoConfigureBefore(RedissonAutoConfiguration.class)
public class RedisClientConfiguration {

    @Profile("single-server-redis-client")
    @Bean(destroyMethod = "shutdown")
    public RedissonClient singleServerRedissonClient(@Value("${single-server.redis.client.host:localhost}") String redisClientHost,@Value("${single-server.redis.client.port:6379}") long redisClientPort) {
        Config config = new Config();
        config.useSingleServer().setAddress(String.format("redis://%s:%d",redisClientHost,redisClientPort));
        return Redisson.create(config);
    }

    @Profile("cluster-redis-client")
    @Bean(destroyMethod = "shutdown")
    public RedissonClient clusterRedissonClient(@Value("${spring.redis.sentinel.nodes}") List<String> sentinelNodes,@Value("${spring.redis.sentinel.master}") String sentinelMaster,@Value("${spring.redis.sentinel.password}") String password) {
        Config config = new Config();
        config.useSentinelServers().setMasterName(sentinelMaster).setPassword(password);
        sentinelNodes.forEach((sentinelNode) -> {
            config.useSentinelServers().addSentinelAddress("redis://" + sentinelNode);
        });
        return Redisson.create(config);
    }

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)