在 spring-cloud-netflix-hystrix 中覆盖 HystrixCommandAspect bean

Override HystrixCommandAspect bean in spring-cloud-netflix-hystrix

HystrixCommandAspect bean 在 HystrixCircuitBreakerConfiguration class 中声明,但我想使用我自己的 HystrixCommandAspect 自定义实现并注入不同的 bean。

申请:

@SpringBootApplication
@EnableAspectJAutoProxy
@EnableCircuitBreaker
@Import(HystrixConfiguration.class)
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

配置:

@Configuration
public class HystrixConfiguration {
    @Bean
    @Primary
    public HystrixCommandAspect hystrixCommandAspect(){
        return new com.hystrix.HystrixCommandAspect();
    }
}

自定义 HystrixCommandAspect:

package com.hystrix;

@Aspect
public class HystrixCommandAspect extends com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect {
...
}

但是,当我使用注释 @EnableCircuitBreaker 时,它使用 HystrixCircuitBreakerConfiguration 并且甚至不加载我自己的 @Bean 定义。

我将 spring 升级到最新版本,这解决了问题。我还在日志中注意到它说它正在覆盖 HystrixCircuitBreakerConfiguration.

中提供的 bean