해결하고자 나온 라이브러리 : swagger!
@Configuration : 어노테이션 기반의 환경구성을 돕는 어노테이션
IoC COntainer에게 해당클래스를 Bean 구성 Class임을 알려줌
@Bean : 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들 경우 사용
package com.example.testproject.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author Flature
* @version 1.0.0
*/
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket api(){ //Docket : DocumentationPlugin을 상속해서 클래스를 만드는 역할
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) //API의 정보들을 담음
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.testproject")) //어디를 범위로 스캔할것이냐
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("Around Hub Open API Test with Swagger")
.description("설명 부분")
.version("1.0.0")
.build();
}
}
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
원인 :
spring boot 2.6.0부터 요청 경로를 ControllerHandler에 매칭시키기 위한 전략의 기본값이 ant_path_matcher 전략 -> path_pattern_parser 전략으로 변경되었기 때문
application.properties
에
spring.mvc.pathmatch.matching-strategy=ant_path_matcher 추가