스프링부트 2.5.6 그래들 7.2 버전
Swagger3.0.0 설치 후 아래와 같이 설정하면
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30) // open api spec 3.0
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
기본으로 보이는 api들만 보이고 내가 작성한 controller 파일들이 보이지 않는 일이 발생.
아래처럼 컨트롤러 패키지를 직접 지정하는 방식으로 api를 보이게 작성했다.
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30) // OAS 3
.useDefaultResponseMessages(false)
.select()
.apis(RequestHandlerSelectors.basePackage("com.~~~.~~~.controller")) // controller가 있는 패키지 지정 basePackage
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
그러나 api들이 아무것도 보이지 않고 No operations defined in spec! 만 보이는 상황이 발생.
패키지 지정이 잘못된건 알겠으나 해결을 어떻게 할지 모르겠어서 구글링을 통해 해결책을 발견했다.
1. basePackage("패키지경로") 변경
basePackage(com.~~~.~~~.controller) 에서 basePackage("") 로 변경한다.
2. main 메소드가 있는 Aplication 클래스에
@ComponentScan(basePackages = {"컨트롤러경로"})
public class McallApplication {
public static void main(String[] args) {
SpringApplication.run(McallApplication.class, args);
}
}
컴포넌트 스캔으로 컨트롤러 패키지를 따로 지정해준다. 그러면 basePackage("")로 잡히게 된다.
설정 후 성공한 모습
'스프링부트' 카테고리의 다른 글
Springboot 특정 url에서 파일 다운로드하기 (0) | 2022.05.10 |
---|---|
[JPA] Jpa repository exist jpa query로 사용하기 (0) | 2022.02.04 |
Springboot Mock 테스트시 get status print 등 static import (0) | 2022.01.25 |
spring boot - ec2 DNS 설정 (0) | 2021.07.04 |
Spring boot 간단공부 - POJO (0) | 2021.06.21 |