Update TraceWebFilterAutoConfiguration to use constructor injection

This commit is contained in:
Andy Wilkinson
2016-04-19 16:25:49 +01:00
parent e69ec6bb09
commit 58dac43b8d

View File

@@ -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<ErrorAttributes> errorAttributesProvider) {
this.traceRepository = traceRepository;
this.traceProperties = traceProperties;
this.errorAttributes = errorAttributesProvider.getIfAvailable();
}
@Bean
public WebRequestTraceFilter webRequestLoggingFilter(BeanFactory beanFactory) {