Я определил класс с конфигурацией аннотации
@Configuration
@AutoConfigureAfter(EndpointAutoConfiguration.class)
public class EndpointConfiguration {
@Resource
private MetricsEndpoint metricsEndpoint;
@Bean
public MetricsFormatEndpoint metricsFormatEndpoint() {
return new MetricsFormatEndpoint(metricsEndpoint);
}
}
MetricsFormatEndpoint работает хорошо.
но я использую аннотацию conditionalOnBean, она вообще не работает.
@Bean
@ConditionalOnBean(MetricsEndpoint.class)
public MetricsFormatEndpoint metricsFormatEndpoint() {
return new MetricsFormatEndpoint(metricsEndpoint);
}
см. localhost: 8080 / beans, у Spring applicationContext есть bean-компонент metricsEndpoint,
{"bean":"metricsEndpoint","scope":"singleton",
"type":"org.springframework.boot.actuate.endpoint.MetricsEndpoint",
"resource":"class path resource
[org/springframework/boot/actuate/autoconfigure/EndpointAutoConfiguration.class]",
"dependencies":[]}
Я прочитал документ аннотации @ConditionalOnBean, в нем написано Тип класса bean-компонента, который следует проверить. Условие соответствует, когда любой из указанных классов содержится в {@link ApplicationContext}.
кто может сказать мне почему