From 58dac43b8df9cfb326ec6d440aa5c28054e82618 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 19 Apr 2016 16:25:49 +0100 Subject: [PATCH] Update TraceWebFilterAutoConfiguration to use constructor injection --- .../TraceWebFilterAutoConfiguration.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/TraceWebFilterAutoConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/TraceWebFilterAutoConfiguration.java index 6b8599b62e..9cba6635da 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/TraceWebFilterAutoConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/TraceWebFilterAutoConfiguration.java @@ -20,7 +20,7 @@ import javax.servlet.Servlet; import javax.servlet.ServletRegistration; import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.actuate.trace.TraceProperties; import org.springframework.boot.actuate.trace.TraceRepository; import org.springframework.boot.actuate.trace.WebRequestTraceFilter; @@ -30,6 +30,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.web.ErrorAttributes; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.DispatcherServlet; /** @@ -41,16 +42,22 @@ import org.springframework.web.servlet.DispatcherServlet; @ConditionalOnClass({ Servlet.class, DispatcherServlet.class, ServletRegistration.class }) @AutoConfigureAfter(TraceRepositoryAutoConfiguration.class) @EnableConfigurationProperties(TraceProperties.class) +@Configuration public class TraceWebFilterAutoConfiguration { - @Autowired - private TraceRepository traceRepository; + private final TraceRepository traceRepository; - @Autowired(required = false) - private ErrorAttributes errorAttributes; + private final TraceProperties traceProperties; - @Autowired - TraceProperties traceProperties = new TraceProperties(); + private final ErrorAttributes errorAttributes; + + public TraceWebFilterAutoConfiguration(TraceRepository traceRepository, + TraceProperties traceProperties, + ObjectProvider errorAttributesProvider) { + this.traceRepository = traceRepository; + this.traceProperties = traceProperties; + this.errorAttributes = errorAttributesProvider.getIfAvailable(); + } @Bean public WebRequestTraceFilter webRequestLoggingFilter(BeanFactory beanFactory) {