Я нашел свой ответ (потратил слишком много времени на это). Это немного взломано, но работает:
Новый класс конфигурации: foo.ManagementConfig
package foo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
@ManagementContextConfiguration
public class ManagementConfig {
@Bean
WebServerFactoryCustomizer<UndertowServletWebServerFactory> actuatorCustomizer(@Value("${management.server.port}") int managementPort) {
return factory -> {
if (managementPort == factory.getPort()) {
factory.setAccessLogEnabled(false);
}
};
}
}
Создал ресурсы / META-INF / spring.factories, чтобы он был подобран by ManagementContext:
org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration=foo.ManagementConfig
Часть, которая немного взломана, является оператором if
. Было бы замечательно, если бы он применялся только к контексту управления, но по какой-то причине он пытается применяться к обоим. С оператором if он просто ничего не делает для основного контекста.
Это может привести к непредвиденным последствиям, если management.server.port
не определено или если оно совпадает с основным контекстом.