Skip to content

Invalid WARN when returning a BeanDefinitionRegistryPostProcessor from within a @Configuration class [SPR-14603] #19172

Closed
@spring-projects-issues

Description

@spring-projects-issues

Les Hazlewood opened SPR-14603 and commented

Consider the following configuration class:

import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyConfiguration {

    @Bean
    public static BeanDefinitionRegistryPostProcessor myPostProcessor() {
        return new MyBeanDefinitionPostProcessor();
    }
}

(if it matters, this class is loaded in Spring MVC and Spring Boot applications via an @Import(MyConfiguration.class) annotation.)

This causes a WARN message to be printed as follows:

Cannot enhance @Configuration bean definition 'myPostProcessor' since its singleton instance has been created too early. The typical cause is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor return type: Consider declaring such methods as 'static'.

As you can see, the method is declared as static, yet I still receive the WARN message. When I remove the static modifier, I still receive the same WARN message. Something is amiss.

This is a problem for us because we use this code in a Spring library as well as a Spring Boot starter/plugin that we distribute to customers - when they see the WARN message, they think something is wrong, even though everything is working as expected.


Issue Links:

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)type: bugA general bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions