Skip to content

SpecificationStringPropertiesCustomizerBeanPostProcessor #3063

@lyace2010

Description

@lyace2010

Describe the bug

After upgrading from version 2.3 to 2.8.10, I encountered three WARN logs when starting the springboot3 project. It seems to be an initialization sequence issue with the SpecificationStringPropertiesCustomizerBeanPostProcessor

2025-08-21T10:40:49.037+08:00  WARN 16912 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springdoc.core.configuration.SpringDocSpecPropertiesConfiguration' of type [org.springdoc.core.configuration.SpringDocSpecPropertiesConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). The currently created BeanPostProcessor [specificationStringPropertiesCustomizerBeanPostProcessor] is declared through a non-static factory method on that class; consider declaring it as static instead.
2025-08-21T10:40:49.151+08:00  WARN 16912 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'stringOrNumberMigrationVersionConverter' of type [org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$StringOrNumberToMigrationVersionConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [specificationStringPropertiesCustomizerBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE.
2025-08-21T10:40:49.158+08:00  WARN 16912 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springdoc.core.properties.SpringDocConfigProperties' of type [org.springdoc.core.properties.SpringDocConfigProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [specificationStringPropertiesCustomizerBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE.

To Reproduce
Steps to reproduce the behavior:

  • What version of spring-boot you are using?
    3.5.4

  • What modules and versions of springdoc-openapi are you using?
    2.8.10

  • What is the actual and the expected result using OpenAPI Description (yml or json)?

  • Provide with a sample code (HelloController) or Test that reproduces the problem

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.5.4</version>
        <relativePath/>
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springdoc-openapi-test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springdoc-openapi-test</name>
    <description>springdoc-openapi-test</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>2.8.10</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

com.example.springdocopenapitest.SpringdocOpenapiTestApplication.java

package com.example.springdocopenapitest;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
@EnableAsync
public class SpringdocOpenapiTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringdocOpenapiTestApplication.class, args);
    }

}

application.yml

springdoc:
    group-configs:
        - group: 'testgroup'
          open-api:
              info:
                  title: mytitle

Expected behavior

  • A clear and concise description of what you expected to happen.
  • What is the expected result using OpenAPI Description (yml or json)?

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions