Предупреждать о нестатических объявлениях ConfigurationClassPostProcessor в классах @Configuration

Я использую Spring 4.2.6.RELEASE. Во время инициализации моего приложения я получаю такое предупреждение:

[WARN] org.springframework.context.annotation.ConfigurationClassPostProcessor expandConfigurationClasses: Невозможно усилить @Configuration beanопределение 'Org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration $TokenKeyEndpointRegistrar' поскольку его экземпляр singleton был создан слишком рано. Типичный причиной является нестатический метод @Bean с Тип возврата BeanDefinitionRegistryPostProcessor: рассмотрите объявление такие методы, как "статические".

Я нашел jira для очень похожей проблемы:

https://jira.spring.io/browse/SPR-14234

но он помечен как закрытый и должен быть зафиксирован в 4.2.6. REELASE.

Ответ 1

Может быть, это помогает (или нет)...

@RunWith(SpringRunner.class)
@DataJpaTest
public class TestMyImpl {
...

Я использую 4.3.4.RELEASE и имею следующее предупреждение для кода выше:

2016-12-30 07: 33: 04.296 WARN 2000 --- [main] o.s.c.a.ConfigurationClassPostProcessor: не может улучшить @Configuration bean определение 'embeddedDataSourceBeanFactoryPostProcessor', поскольку его экземпляр singleton был создан слишком рано. Типичной причиной является нестатический метод @Bean с возвращаемым типом BeanDefinitionRegistryPostProcessor: рассмотрите объявление таких методов, как "статический".

Поскольку я использую @DataJpaTest, который автоматически конфигурирует тестовую базу данных (h2 в этом случае), заменяя любой найденный dataSource, поведение ожидается и требуется. Предупреждение является подтверждением преобладающего поведения @DataJpaTest.

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace=Replace.NONE)
public class TestMyImpl {
...

Отключив автоконфигурацию (как показано выше), предупреждение исчезает. dataSource теперь можно настроить как обычно.