diff --git a/pom.xml b/pom.xml
index b936a371ab9c8d6242707b3c47e2f170796b9da8..f8ba16c9cf822e7dcb36aef2806973f53dfc296e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,8 +5,6 @@
 
     <groupId>org.springframework.samples</groupId>
     <artifactId>spring-petclinic-rest</artifactId>
-    <version>2.6.2</version>
-
     <description>REST version of the Spring Petclinic sample application</description>
     <url>https://spring-petclinic.github.io/</url>
 
@@ -20,14 +18,15 @@
     <properties>
         <!-- Third librairies -->
         <spring-data-jdbc.version>1.2.1.RELEASE</spring-data-jdbc.version>
-        <springfox-swagger.version>3.0.0</springfox-swagger.version>
+        <!-- <springfox-swagger.version>3.0.0</springfox-swagger.version> -->
+        <springdoc-openapi-ui.version>1.6.11</springdoc-openapi-ui.version>
         <jackson-databind-nullable.version>0.2.1</jackson-databind-nullable.version>
         <mapstruct.version>1.4.1.Final</mapstruct.version>
         <jaxb-api.version>2.3.0</jaxb-api.version>
 
         <!-- Maven plugins -->
         <jacoco.version>0.8.7</jacoco.version>
-        <openapi-generator-maven-plugin.version>5.2.1</openapi-generator-maven-plugin.version>
+        <openapi-generator-maven-plugin.version>6.0.1</openapi-generator-maven-plugin.version>
         <build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
 
         <!-- Docker -->
@@ -121,11 +120,17 @@
             <artifactId>json-path</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
+        <!-- <dependency>
             <groupId>io.springfox</groupId>
             <artifactId>springfox-boot-starter</artifactId>
             <version>${springfox-swagger.version}</version>
-        </dependency>
+        </dependency> -->
+        
+      	<dependency>
+			<groupId>org.springdoc</groupId>
+			<artifactId>springdoc-openapi-ui</artifactId>
+			<version>${springdoc-openapi-ui.version}</version>
+   		</dependency>
 
         <dependency>
             <groupId>org.openapitools</groupId>
@@ -156,8 +161,7 @@
         <dependency>
             <groupId>javax.xml.bind</groupId>
             <artifactId>jaxb-api</artifactId>
-            <version>${jaxb-api.version}</version>
-        </dependency>
+            </dependency>
     </dependencies>
 
     <build>
@@ -267,7 +271,7 @@
                             <inputSpec>${project.basedir}/src/main/resources/openapi.yml</inputSpec>
                             <generatorName>spring</generatorName>
                             <library>spring-boot</library>
-
+							
                             <!-- Only enabling model andopenapi-generator-maven-plugin API generation -->
                             <modelNameSuffix>Dto</modelNameSuffix>
                             <apiPackage>org.springframework.samples.petclinic.rest.api</apiPackage>
@@ -288,6 +292,8 @@
                                 <openApiNullable>false</openApiNullable>
                                 <!-- override the default library to jersey2 -->
                                 <serializationLibrary>jackson</serializationLibrary>
+                                <!-- switch documentation provider to springdoc -->
+                                <documentationProvider>springdoc</documentationProvider>
                             </configOptions>
                         </configuration>
                     </execution>
@@ -296,7 +302,6 @@
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>build-helper-maven-plugin</artifactId>
-                <version>${build-helper-maven-plugin.version}</version>
                 <executions>
                     <execution>
                         <id>add-source</id>
@@ -315,7 +320,6 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>${maven-compiler-plugin.version}</version>
                 <configuration>
                     <annotationProcessorPaths>
                         <path>
diff --git a/src/main/java/org/springframework/samples/petclinic/config/SwaggerConfig.java b/src/main/java/org/springframework/samples/petclinic/config/SwaggerConfig.java
index 8bf32512e41adf5467490e57c8a91405b93e891f..ae291140eb64698820888ce1385025e332568bba 100755
--- a/src/main/java/org/springframework/samples/petclinic/config/SwaggerConfig.java
+++ b/src/main/java/org/springframework/samples/petclinic/config/SwaggerConfig.java
@@ -16,25 +16,16 @@
 
 package org.springframework.samples.petclinic.config;
 
+import java.util.Collections;
 
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.util.ReflectionUtils;
-import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.service.Contact;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
-import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
 
-import java.lang.reflect.Field;
-import java.util.Collections;
-import java.util.List;
+import io.swagger.v3.oas.models.Components;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Contact;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.info.License;
 
 /**
  * Java config for Springfox swagger documentation plugin
@@ -43,63 +34,35 @@ import java.util.List;
  */
 @Configuration
 public class SwaggerConfig {
-
-   @Bean
-   public Docket customDocket(){
-      return new Docket(DocumentationType.OAS_30)
-    		  .select()
-              .apis(RequestHandlerSelectors.any())
-              .paths(PathSelectors.any())
-              .build()
-              .apiInfo(getApiInfo());
-   }
-
-   private ApiInfo getApiInfo() {
-	   return new ApiInfo(
-		"REST Petclinic backend Api Documentation",
-		"This is REST API documentation of the Spring Petclinic backend. If authentication is enabled, when calling the APIs use admin/admin",
-		"1.0",
-		"Petclinic backend terms of service",
-		new Contact(
-				"Vitaliy Fedoriv",
-				"https://github.com/spring-petclinic/spring-petclinic-rest",
-				"vitaliy.fedoriv@gmail.com"),
-		"Apache 2.0",
-		"http://www.apache.org/licenses/LICENSE-2.0", Collections.emptyList());
-   }
-
-    /**
-     * Springfox workaround required by Spring Boot 2.6
-     * See https://github.com/springfox/springfox/issues/3462
-     */
+	
     @Bean
-    public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
-        return new BeanPostProcessor() {
+    OpenAPI customOpenAPI() {
 
-            @Override
-            public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
-                if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {
-                    customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
-                }
-                return bean;
-            }
-
-            private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {
-                mappings.removeIf(mapping -> mapping.getPatternParser() != null);
-            }
-
-            @SuppressWarnings("unchecked")
-            private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {
-                try {
-                    Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
-                    field.setAccessible(true);
-                    return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
-                } catch (IllegalArgumentException | IllegalAccessException e) {
-                    throw new IllegalStateException(e);
-                }
-            }
-        };
+        return new OpenAPI()
+                .components(new Components())
+                .info(new Info()
+                		.title("REST Petclinic backend Api Documentation")
+                		.version("1.0")
+                		.termsOfService("Petclinic backend terms of service")
+                		.description("This is REST API documentation of the Spring Petclinic backend. If authentication is enabled, when calling the APIs use admin/admin")
+                		.license(swaggerLicense())
+                		.contact(swaggerContact()));
+    }
+    
+    private Contact swaggerContact() {
+    	Contact petclinicContact = new Contact();
+    	petclinicContact.setName("Vitaliy Fedoriv");
+    	petclinicContact.setEmail("vitaliy.fedoriv@gmail.com");
+    	petclinicContact.setUrl("https://github.com/spring-petclinic/spring-petclinic-rest");
+    	return petclinicContact;
+    }
+    
+    private License swaggerLicense() {
+    	License petClinicLicense = new License();
+    	petClinicLicense.setName("Apache 2.0");
+    	petClinicLicense.setUrl("http://www.apache.org/licenses/LICENSE-2.0");
+    	petClinicLicense.setExtensions(Collections.emptyMap());
+    	return petClinicLicense;
     }
-
 
 }
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/controller/OwnerRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/controller/OwnerRestController.java
index fab71415c72c26b8bdd8bc661d5c0c15edb22a2b..62c69ea3e0b2cbf74b9104379b86530b2e1799e5 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/controller/OwnerRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/controller/OwnerRestController.java
@@ -16,7 +16,11 @@
 
 package org.springframework.samples.petclinic.rest.controller;
 
-import io.swagger.annotations.ApiParam;
+import java.util.Collection;
+import java.util.List;
+
+import javax.transaction.Transactional;
+
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -27,20 +31,19 @@ import org.springframework.samples.petclinic.model.Owner;
 import org.springframework.samples.petclinic.model.Pet;
 import org.springframework.samples.petclinic.model.Visit;
 import org.springframework.samples.petclinic.rest.api.OwnersApi;
-import org.springframework.samples.petclinic.rest.dto.*;
+import org.springframework.samples.petclinic.rest.dto.OwnerDto;
+import org.springframework.samples.petclinic.rest.dto.OwnerFieldsDto;
+import org.springframework.samples.petclinic.rest.dto.PetDto;
+import org.springframework.samples.petclinic.rest.dto.PetFieldsDto;
+import org.springframework.samples.petclinic.rest.dto.VisitDto;
+import org.springframework.samples.petclinic.rest.dto.VisitFieldsDto;
 import org.springframework.samples.petclinic.service.ClinicService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import javax.transaction.Transactional;
-import javax.validation.constraints.Min;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * @author Vitaliy Fedoriv
  */
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/controller/PetRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/controller/PetRestController.java
index ecee18cfec930e7302415c7b0f1f83a50420ca39..bee27da2ce3c97f80f46d0863ce36570c19a0222 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/controller/PetRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/controller/PetRestController.java
@@ -16,7 +16,11 @@
 
 package org.springframework.samples.petclinic.rest.controller;
 
-import io.swagger.annotations.ApiParam;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.transaction.Transactional;
+
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.samples.petclinic.mapper.PetMapper;
@@ -25,13 +29,9 @@ import org.springframework.samples.petclinic.rest.api.PetsApi;
 import org.springframework.samples.petclinic.rest.dto.PetDto;
 import org.springframework.samples.petclinic.service.ClinicService;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import javax.transaction.Transactional;
-import javax.validation.Valid;
-import javax.validation.constraints.Min;
-import java.util.ArrayList;
-import java.util.List;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author Vitaliy Fedoriv
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestController.java
index 213e96984c80067aa3456ef389cc81a46d793cf9..59b4735e4415301be08b782de52207d60fd9648b 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestController.java
@@ -16,7 +16,11 @@
 
 package org.springframework.samples.petclinic.rest.controller;
 
-import io.swagger.annotations.ApiParam;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.transaction.Transactional;
+
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -26,15 +30,11 @@ import org.springframework.samples.petclinic.rest.api.PettypesApi;
 import org.springframework.samples.petclinic.rest.dto.PetTypeDto;
 import org.springframework.samples.petclinic.service.ClinicService;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import javax.transaction.Transactional;
-import javax.validation.Valid;
-import javax.validation.constraints.Min;
-import java.util.ArrayList;
-import java.util.List;
-
 @RestController
 @CrossOrigin(exposedHeaders = "errors, content-type")
 @RequestMapping("api")
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/controller/SpecialtyRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/controller/SpecialtyRestController.java
index b01ccc21f7fcb02497949b017731525fa52cd522..da9e7c71886de0aa2a48e15d3ed24b633637347d 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/controller/SpecialtyRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/controller/SpecialtyRestController.java
@@ -16,7 +16,11 @@
 
 package org.springframework.samples.petclinic.rest.controller;
 
-import io.swagger.annotations.ApiParam;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.transaction.Transactional;
+
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -26,15 +30,11 @@ import org.springframework.samples.petclinic.rest.api.SpecialtiesApi;
 import org.springframework.samples.petclinic.rest.dto.SpecialtyDto;
 import org.springframework.samples.petclinic.service.ClinicService;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import javax.transaction.Transactional;
-import javax.validation.Valid;
-import javax.validation.constraints.Min;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author Vitaliy Fedoriv
  */
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/controller/VetRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/controller/VetRestController.java
index 8a0732c1c1468258fe4f328aeca455f67b575e14..2e5110facd565db642ae9b6b3c15a228bccb9e7d 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/controller/VetRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/controller/VetRestController.java
@@ -15,7 +15,11 @@
  */
 package org.springframework.samples.petclinic.rest.controller;
 
-import io.swagger.annotations.ApiParam;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.transaction.Transactional;
+
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -27,15 +31,11 @@ import org.springframework.samples.petclinic.rest.api.VetsApi;
 import org.springframework.samples.petclinic.rest.dto.VetDto;
 import org.springframework.samples.petclinic.service.ClinicService;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import javax.transaction.Transactional;
-import javax.validation.Valid;
-import javax.validation.constraints.Min;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author Vitaliy Fedoriv
  */
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/controller/VisitRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/controller/VisitRestController.java
index c99382d0e678f9ba34f2c018cc5444ea1e7f37f2..f8066fff9a538cfca6a68ee2990ed7745027ada6 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/controller/VisitRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/controller/VisitRestController.java
@@ -16,7 +16,11 @@
 
 package org.springframework.samples.petclinic.rest.controller;
 
-import io.swagger.annotations.ApiParam;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.transaction.Transactional;
+
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -26,15 +30,11 @@ import org.springframework.samples.petclinic.rest.api.VisitsApi;
 import org.springframework.samples.petclinic.rest.dto.VisitDto;
 import org.springframework.samples.petclinic.service.ClinicService;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import javax.transaction.Transactional;
-import javax.validation.Valid;
-import javax.validation.constraints.Min;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author Vitaliy Fedoriv
  */
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index c558a190eaf8662d51e6b07fe25f87f95c141b85..a864bc9eebd819ade56e0ba0b540d0fe501c3327 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -25,7 +25,7 @@ server.servlet.context-path=/petclinic/
 
 # Springfox workaround required by Spring Boot 2.6
 # See https://github.com/springfox/springfox/issues/3462
-spring.mvc.pathmatch.matching-strategy=ant_path_matcher
+#spring.mvc.pathmatch.matching-strategy=ant_path_matcher
 
 spring.messages.basename=messages/messages
 spring.jpa.open-in-view=false
@@ -40,3 +40,9 @@ logging.level.org.springframework=INFO
 # by default the authentication is disabled
 petclinic.security.enable=false
 
+# SpringDoc autoconfiguration is disabled
+# ------------------------------------------------
+#springdoc.api-docs.enabled=false
+#springdoc.packagesToScan=org.springframework.samples.petclinic*
+#springdoc.pathsToMatch=/*
+#springdoc.swagger-ui.url=/openapi.yml
\ No newline at end of file