일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ollama langflow
- spring
- custom valid
- JPA
- CentOS6
- dto valid
- java8
- generate pojos
- swagger
- SpringBoot
- jpa entity자동
- Java
- docker 설치
- 도커
- spring boot
- React
- 헤더 설정
- java9
- generate entity
- jvm
- docker
- memcached
- MySQL
- NextJS
- 초기 구축
- 초기 세팅
- JavaScript
- header setting
- Next.js 14
- 리눅스
Archives
- Today
- Total
개발자의 길
Springboot swagger를 phaze(dev,prod,real) 별로 활성 비활성 하는 방 본문
swagger-ui를 적용하면 아주 편하고 좋다.
하지만, 이건 개발서버에서만 노출해야 하고, real(prod)에서는 비노출 하는게 맞다.
환경(phaze) 별로 활성/비활성 하는 방법을 3가지 적겠다.
셋중 하나를 적용하면 된다.
1. 설정파일(application) 설정
application.properties 파일 설정의 경우
[prod 설정 (application-prod.properties)]
-> springfox.documentation.enabled=false
[dev 설정 (application-dev.properties)]
-> springfox.documentation.enabled=true
application.yml 파일 설정의 경우
[prod 설정]
springfox:
documentation:
enabled: false
[dev 설정]
springfox:
documentation:
enabled: false
2. 설정파일(application)에서 변수 설정 후, SwaggerConfig 클래스에서 설정
위에 설명한 설정 파일에서 한가지 변수를 설정
swaggerYn=true (dev)
swaggerYn=false (prod)
@Configuration
public class SwaggerConfig implements EnvironmentAware {
private Environment environment;
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.demo.example.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo())
.enable(Boolean.parseBoolean(environment.getProperty("swaggerYn")));
}
@Override
public void setEnvironment(Environment environment) {
this.environment = environment;
}
}
물론
@Value("${swaggerYn}")
private String swaggerYn;
으로 프로퍼티 값을 가져와서 사용해도 된다. 이게 더 낫네..
3. @Profile 설정
이 설정은 swagger에서 제공한다기 보다는 spring에서 제공하는 어노테이션이다.
위에 SwaggerConfig 파일 위에 설정해주면 된다.
@Profile({"local", "dev"})
@Configuration
public class SwaggerConfig implements EnvironmentAware {
....
...
}
근대 이 3번 설정에서 prod에서 swagger-ui 호출 url로 접속하면, 이상하게 서버(내장톰캣) 자체가 죽어버리는 현상이 발생한다...
'4. JAVA' 카테고리의 다른 글
[java] URL 파일 내용 읽기 (0) | 2022.09.13 |
---|---|
[Spring framework] Annotation 정리 (3) | 2022.05.09 |
[jpa] jpql 문법 정리 (0) | 2021.02.15 |
[java] 자바 리플렉션 reflection test & method call (1) | 2020.12.10 |
[java] 자바 정규식. 자주 쓰는것들 (0) | 2020.12.09 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Comments