spring boot@autoconfigurebefore不工作

hfsqlsce  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(299)

我对我的定制redis starter有一个依赖,它有一个配置类,我想在它之前启动它 RedissonAutoConfiguration ,为此,我使用 @AutoConfigureBefore 但是,它似乎不起作用而且仍然, RedissonAutoConfiguration 先开始。
唯一有效的办法似乎是增加 @ComponentScan(basePackage = "path_to_config") ,但我不想在这里使用任何注解,我想在开始之前就开始 RedissonAutoConfiguration 自己
我有 spring.factories 在我的redis starter文件中进行类自动配置

  1. org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  2. za.co.discovery.health.dhp.starter.redis.config.RedisClientConfiguration
  1. package za.co.discovery.health.dhp.starter.redis.config;
  2. import org.redisson.Redisson;
  3. import org.redisson.api.RedissonClient;
  4. import org.redisson.config.Config;
  5. import org.springframework.beans.factory.annotation.Value;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.context.annotation.Profile;
  9. import java.util.List;
  10. @Configuration
  11. @AutoConfigureBefore(RedissonAutoConfiguration.class)
  12. public class RedisClientConfiguration {
  13. @Profile("single-server-redis-client")
  14. @Bean(destroyMethod = "shutdown")
  15. public RedissonClient singleServerRedissonClient(@Value("${single-server.redis.client.host:localhost}") String redisClientHost, @Value("${single-server.redis.client.port:6379}") long redisClientPort) {
  16. Config config = new Config();
  17. config.useSingleServer().setAddress(String.format("redis://%s:%d", redisClientHost, redisClientPort));
  18. return Redisson.create(config);
  19. }
  20. @Profile("cluster-redis-client")
  21. @Bean(destroyMethod = "shutdown")
  22. 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) {
  23. Config config = new Config();
  24. config.useSentinelServers().setMasterName(sentinelMaster).setPassword(password);
  25. sentinelNodes.forEach((sentinelNode) -> {
  26. config.useSentinelServers().addSentinelAddress("redis://" + sentinelNode);
  27. });
  28. return Redisson.create(config);
  29. }
  30. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题