From 1464425d64ffcbf8824d13d0f66ddf6ce7689eb2 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 2 Dec 2016 17:57:21 +0000 Subject: [PATCH] Remove use of @Component from classes that are not scanned Closes gh-7549 --- .../boot/actuate/endpoint/mvc/MvcEndpoints.java | 2 -- .../batch/BasicBatchConfigurer.java | 2 -- .../batch/JobLauncherCommandLineRunner.java | 2 -- .../AuthenticationManagerConfiguration.java | 7 +++++-- .../boot/web/support/ErrorPageFilter.java | 2 -- .../support/SpringBootServletInitializer.java | 16 +++++++++++++++- .../SpringBootServletInitializerTests.java | 7 ++++--- 7 files changed, 24 insertions(+), 14 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/mvc/MvcEndpoints.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/mvc/MvcEndpoints.java index f878062b93..3780ca36bb 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/mvc/MvcEndpoints.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/mvc/MvcEndpoints.java @@ -30,7 +30,6 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.core.env.Environment; -import org.springframework.stereotype.Component; /** * A registry for all {@link MvcEndpoint} beans, and a factory for a set of generic ones @@ -39,7 +38,6 @@ import org.springframework.stereotype.Component; * * @author Dave Syer */ -@Component public class MvcEndpoints implements ApplicationContextAware, InitializingBean { private ApplicationContext applicationContext; diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/BasicBatchConfigurer.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/BasicBatchConfigurer.java index 0f19a1b4c7..251601ba28 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/BasicBatchConfigurer.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/BasicBatchConfigurer.java @@ -32,7 +32,6 @@ import org.springframework.batch.core.repository.JobRepository; import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.stereotype.Component; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.util.StringUtils; @@ -42,7 +41,6 @@ import org.springframework.util.StringUtils; * @author Dave Syer * @author Andy Wilkinson */ -@Component public class BasicBatchConfigurer implements BatchConfigurer { private static final Log logger = LogFactory.getLog(BasicBatchConfigurer.class); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/JobLauncherCommandLineRunner.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/JobLauncherCommandLineRunner.java index 2dc675d0a3..ec6c78e551 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/JobLauncherCommandLineRunner.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/JobLauncherCommandLineRunner.java @@ -50,7 +50,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; -import org.springframework.stereotype.Component; import org.springframework.util.PatternMatchUtils; import org.springframework.util.StringUtils; @@ -62,7 +61,6 @@ import org.springframework.util.StringUtils; * @author Dave Syer * @author Jean-Pierre Bergamin */ -@Component public class JobLauncherCommandLineRunner implements CommandLineRunner, ApplicationEventPublisherAware { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/AuthenticationManagerConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/AuthenticationManagerConfiguration.java index a6bf73756d..0119557bb9 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/AuthenticationManagerConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/AuthenticationManagerConfiguration.java @@ -47,7 +47,6 @@ import org.springframework.security.config.annotation.authentication.builders.Au import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; import org.springframework.security.config.annotation.authentication.configurers.GlobalAuthenticationConfigurerAdapter; import org.springframework.security.config.annotation.authentication.configurers.provisioning.InMemoryUserDetailsManagerConfigurer; -import org.springframework.stereotype.Component; import org.springframework.util.ReflectionUtils; /** @@ -86,6 +85,11 @@ public class AuthenticationManagerConfiguration { return new SpringBootAuthenticationConfigurerAdapter(securityProperties); } + @Bean + public AuthenticationManagerConfigurationListener authenticationManagerConfigurationListener() { + return new AuthenticationManagerConfigurationListener(); + } + /** * {@link GlobalAuthenticationConfigurerAdapter} to apply * {@link DefaultInMemoryUserDetailsManagerConfigurer}. We must apply @@ -193,7 +197,6 @@ public class AuthenticationManagerConfiguration { * {@link ApplicationListener} to autowire the {@link AuthenticationEventPublisher} * into the {@link AuthenticationManager}. */ - @Component protected static class AuthenticationManagerConfigurationListener implements SmartInitializingSingleton { diff --git a/spring-boot/src/main/java/org/springframework/boot/web/support/ErrorPageFilter.java b/spring-boot/src/main/java/org/springframework/boot/web/support/ErrorPageFilter.java index 19a612ec75..61505e9108 100644 --- a/spring-boot/src/main/java/org/springframework/boot/web/support/ErrorPageFilter.java +++ b/spring-boot/src/main/java/org/springframework/boot/web/support/ErrorPageFilter.java @@ -38,7 +38,6 @@ import org.springframework.boot.web.servlet.ErrorPageRegistrar; import org.springframework.boot.web.servlet.ErrorPageRegistry; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.util.NestedServletException; @@ -56,7 +55,6 @@ import org.springframework.web.util.NestedServletException; * @author Andy Wilkinson * @since 1.4.0 */ -@Component @Order(Ordered.HIGHEST_PRECEDENCE) public class ErrorPageFilter implements Filter, ErrorPageRegistry { diff --git a/spring-boot/src/main/java/org/springframework/boot/web/support/SpringBootServletInitializer.java b/spring-boot/src/main/java/org/springframework/boot/web/support/SpringBootServletInitializer.java index f184798f21..8b2f9d57a6 100644 --- a/spring-boot/src/main/java/org/springframework/boot/web/support/SpringBootServletInitializer.java +++ b/spring-boot/src/main/java/org/springframework/boot/web/support/SpringBootServletInitializer.java @@ -31,6 +31,7 @@ import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext; import org.springframework.boot.web.servlet.ServletContextInitializer; import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.util.Assert; @@ -126,7 +127,7 @@ public abstract class SpringBootServletInitializer implements WebApplicationInit + "configure method or add an @Configuration annotation"); // Ensure error pages are registered if (this.registerErrorPageFilter) { - application.getSources().add(ErrorPageFilter.class); + application.getSources().add(ErrorPageFilterConfiguration.class); } return run(application); } @@ -174,4 +175,17 @@ public abstract class SpringBootServletInitializer implements WebApplicationInit return builder; } + /** + * Configuration for {@link ErrorPageFilter}. + */ + @Configuration + static class ErrorPageFilterConfiguration { + + @Bean + public ErrorPageFilter errorPageFilter() { + return new ErrorPageFilter(); + } + + } + } diff --git a/spring-boot/src/test/java/org/springframework/boot/web/support/SpringBootServletInitializerTests.java b/spring-boot/src/test/java/org/springframework/boot/web/support/SpringBootServletInitializerTests.java index c34eaebfe1..edaec5724e 100644 --- a/spring-boot/src/test/java/org/springframework/boot/web/support/SpringBootServletInitializerTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/web/support/SpringBootServletInitializerTests.java @@ -25,6 +25,7 @@ import org.junit.rules.ExpectedException; import org.springframework.beans.DirectFieldAccessor; import org.springframework.boot.SpringApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer.ErrorPageFilterConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.mock.web.MockServletContext; import org.springframework.web.context.WebApplicationContext; @@ -58,15 +59,15 @@ public class SpringBootServletInitializerTests { public void withConfigurationAnnotation() throws Exception { new WithConfigurationAnnotation() .createRootApplicationContext(this.servletContext); - assertThat(this.application.getSources()) - .containsOnly(WithConfigurationAnnotation.class, ErrorPageFilter.class); + assertThat(this.application.getSources()).containsOnly( + WithConfigurationAnnotation.class, ErrorPageFilterConfiguration.class); } @Test public void withConfiguredSource() throws Exception { new WithConfiguredSource().createRootApplicationContext(this.servletContext); assertThat(this.application.getSources()).containsOnly(Config.class, - ErrorPageFilter.class); + ErrorPageFilterConfiguration.class); } @Test