我正在将spring升级到2.6.2,spring升级到2021.0.0,在升级之后,brave.Tracer无法在@Configuration类中自动加载。
Tracer作为参数自动使用@Bean组件。
我已经在这个question中尝试过解决方案,但是不起作用。
下面是@Configuration类:
@Configuration
@ConditionalOnWebApplication
@AutoConfigureAfter(CommonsAutoConfig.class)
@EnableConfigurationProperties({CorsConfig.class, TracingConfiguration.class})
public class WebCommonsAutoConfig
{
......
@Bean(name = "httpRestRequestResponseLogger")
@RefreshScope
public FilterRegistrationBean httpRestRequestResponseLogger(
RequestResponseLogger requestResponseLogger,
HeaderAccessor headerAccessor,
Tracer tracer,
HeaderExtractor<HttpServletRequestLoggingWrapper> httpHeaderExtractor)
{
final HttpLogFilter httpLogFilter= new HttpLogFilter(requestResponseLogger,
headerAccessor, tracer, httpHeaderExtractor);
final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(httpLogFilter);
registrationBean.setDispatcherTypes(ASYNC, ERROR, FORWARD, INCLUDE, REQUEST);
registrationBean.setOrder(HttpLogFilter.ORDER);
return registrationBean;
}
....
}具有以下错误日志:
...
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error
creating bean with name 'scopedTarget.httpRestRequestResponseLogger' defined in class
path resource [com/vzt/WebCommonsAutoConfig.class]: Unsatisfied dependency expressed
through method 'httpRestRequestResponseLogger' parameter 2;
...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No
qualifying bean of type 'brave.Tracer' available: expected at least 1 bean which
qualifies as autowire candidate. Dependency annotations: {}那么,在这个@Configuration类中,我应该如何使brave.Tracer自动显示呢?
发布于 2022-02-02 18:18:47
很可能您需要添加@AutoConfigureAfter(BraveAutoConfiguration.class).据我所知,春云之夜就在林荫大道上?
https://stackoverflow.com/questions/70960522
复制相似问题