SpringFox Descontinuado. Saiba Como Migrar Para o SpringDoc
- #Spring Boot / Spring
- #Java
SpringFox
O SpringFox foi utilizado por bastante tempo para documentar API's Spring utilizando o Swagger, no entanto, sua última versão foi lançada em julho de 2020.

Devido à incompatibilidade com as versões mais recentes do Spring Boot, a comunidade vem adotando outras bibliotecas, como o SpringDoc.
Nesse artigo, você aprenderá de forma prática como migrar uma API para o SpringDoc utilizando o Spring na versão 3 ou superior.
Fazendo a Migração
Utilizaremos como exemplo o projeto ministrado pelo professor Gleyson Sampaio no curso "Criando uma API REST Documentada com Spring Web e Swagger", disponível aqui mesmo na plataforma da DIO.
Atualize a versão do Spring Boot Starter para a 3.0.0 ou superior.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
Atualize também a versão do Java para 17 ou superior, pois o Spring Boot 3 tem esse requisito como obrigatório.
<properties>
<java.version>17</java.version>
</properties>
Atenção: Lembre de atualizar o Java em sua IDE.
No IntelliJ vá em File > Project Structure... > Project > SDK e altere a versão do Java para 17.
Remova as duas dependências do SpringFox.
<!-- SWAGGER DOCUMENTACAO -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
Adicione as dependências do SpringDoc na versão 2 ou superior.
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-common</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.0.0</version>
</dependency>
Na classe “SwaggerConfig”, apague a anotação "@EnableSwagger2"
@Configuration
public class SwaggerConfig {
Remova os métodos “informacoesApi()” e "contato()"
private Contact contato() {
return new Contact(
"Seu nome",
"http://www.seusite.com.br",
"voce@seusite.com.br");
}
private ApiInfoBuilder informacoesApi() {
ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();
apiInfoBuilder.title("Title - Rest API");
apiInfoBuilder.description("API exemplo de uso de Springboot REST API");
apiInfoBuilder.version("1.0");
apiInfoBuilder.termsOfServiceUrl("Termo de uso: Open Source");
apiInfoBuilder.license("Licença - Sua Empresa");
apiInfoBuilder.licenseUrl("http://www.seusite.com.br");
apiInfoBuilder.contact(this.contato());
return apiInfoBuilder;
}
E adicione o bean "openAPI()" que fará a função dos métodos removidos.
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.info(new Info()
.title("Title - Rest API")
.description("API exemplo de uso de Springboot REST API")
.version("1.0")
.termsOfService("Termo de uso: Open Source")
.license(new License()
.name("Apache 2.0")
.url("http://www.seusite.com.br")
)
).externalDocs(
new ExternalDocumentation()
.description("Seu nome")
.url("http://www.seusite.com.br"));
}
Por fim, remova o bean "detalheApi()"
@Bean
public Docket detalheApi() {
Docket docket = new Docket(DocumentationType.SWAGGER_2);
docket
.select()
.apis(RequestHandlerSelectors.basePackage("com.dio.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(this.informacoesApi().build())
.consumes(new HashSet<String>(Arrays.asList("application/json")))
.produces(new HashSet<String>(Arrays.asList("application/json")));
return docket;
}
E adicione a seguinte propriedade no arquivo "application.properties"
springdoc.packagesToScan=com.dio
Conclusão
Com os passos acima será possível fazer a migração do SpringFox para o SpringDoc. O repositório com a migração está disponível aqui.
Muito obrigado!




Obrigado por compartilhar! Funcionou perfeitamente.
Obrigado por sua solução, ajudou muito pois estava há algumas horas tentando resolver isso.
KA
Muito obrigado, me ajudou demais!!!
LB
Obrigado!
CS
Muito obrigado, você ajudou muito, eu não estava conseguindo utilizar o swagger no java 11.
Obrigado por me salvar! Estava apanhando pra tentar colocar a sugestão do Gleyson do Swagger 3 e não estava dando certo, pois uso o Java 17 e Spring Boot 3.0.0 + e a sua dica funcionou. A API com Swagger ficou bem intuitiva em relação ao Postman, e inclusive vou usar nas outras API que já tenho existentes. Valeu mesmo, abraço e sucesso! 🚀