org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException: Cannot invoke "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getPatterns()" because "this.condition" is null
implementation 'io.springfox:springfox-boot-starter:3.0.0
의존성을 추가한 후,
스프링부트 버전2에 따른 추가 Swagger config 를 작성
@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30) // OpenAPI 3.0 기반
.select()
.apis(RequestHandlerSelectors.any()) // API 탐색 대상 패키지 설정
.paths(PathSelectors.any()) // 모든 경로 포함
.build();
}
}
# application.properties
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
추가 후, Springfox 버전에 따라 아래 코드를 추가 작성
// SwaggerConfig.class
@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30) // OpenAPI 3.0 기반
.select()
.apis(RequestHandlerSelectors.any()) // API 탐색 대상 패키지 설정
.paths(PathSelectors.any()) // 모든 경로 포함
.build();
}
}
시큐리티 허용 경로 추가
// WebSecurityConfig.class
.antMatchers(
"/swagger-ui.html",//Springfox 2.x
"/swagger-ui/**", //Springfox 3.x , Springdoc
"/v2/api-docs/**", //Swagger 2.x
"/v3/api-docs/**", //OpenAPI 3.x
"/swagger-resources/**",
"/webjars/**"
)
localhost:8080/swagger-ui.html
localhost:8080/swagger-ui/index.html
나는 Fox를 사용했는데 왜 localhost:8080/swagger-ui/index.html
로 접속이 가능한거지…
→ Springfox 3.X 에서부터 Springdoc(OpenAPI 3.x)와 유사하게 경로가 변경되었다고 한다.
정리하자면,