2016-06-03 9 views
11

Uso Spring 4.2.6.RELEASE. Durante l'inizializzazione della mia app ottengo un tale avvertimento:Avvisa sulle dichiarazioni non statiche di ConfigurationClassPostProcessor su classi @Configuration

[WARN] org.springframework.context.annotation.ConfigurationClassPostProcessor enhanceConfigurationClasses: Non può migliorare @Configuration fagioli definizione 'org.springframework.security.oauth2. config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration $ TokenKeyEndpointRegistrar ' poiché la sua istanza singleton è stata creata troppo presto. La tipica causa è un metodo @Bean non statico con un tipo di ritorno BeanDefinitionRegistryPostProcessor : Si consideri che dichiara metodi come "statico".

ho trovato jira per un problema molto simile:

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

ma è contrassegnata come chiusa e dovrebbe essere fissata in 4.2.6.RELEASE.

+1

Mi piacerebbe chiedere come evitare questo messaggio oltre a disattivarlo in configurazione di registrazione. Sto dicendo Nello stesso progetto ho due classi @Configuration ciascuna con una '@Bean public static ' -method. Uno si traduce in quel messaggio, l'altro no. – sjngm

+0

Perché non è pratico seguire semplicemente il consiglio nel messaggio di avviso e definire il metodo di definizione del bean come 'statico'? E per permettermi di darti una vera risposta: potresti fornire la tua classe annotata '@ Configuration'? –

+0

Penso che il problema sia con AuthorizationServerEndpointsConfiguration che è una classe Spring non mia. Ho sbagliato? –

risposta

-1

Forse questo aiuta (o non) ...

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

sto usando 4.3.4.RELEASE e hanno il seguente avviso per il blocco di codice di cui sopra:

2016-12-30 07: 33: 04.296 WARN 2000 --- [main] oscaConfigurationClassPostProcessor: Impossibile migliorare la definizione del bean @Configuration 'embeddedDataSourceBeanFactoryPostProcessor' poiché la sua istanza singleton è stata creata troppo presto. La causa tipica è un metodo @Bean non statico con un tipo di ritorno BeanDefinitionRegistryPostProcessor: prendere in considerazione la dichiarazione di metodi come "statici".

Da quando uso @DataJpaTest che autoconfigura il database di test (h2 in questo caso), sostituendo qualsiasi dataSource constati, si prevede che il comportamento e voluto. L'avviso è una conferma del comportamento prevalente di @DataJpaTest.

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

Disattivando l'autoconfigurazione (come mostrato sopra) l'avviso scompare. Il datasource può ora essere configurato come al solito.

Problemi correlati