webflux 프로젝트를 구성하고 실행해봤더니 tomcat으로 실행되고 있어 구글링과 spring initializr를 통해 알게 된 사실
hateoas 기능을 무심코 넣었더니 netty기반으로 실행이 안되었다.
삽질로 webflux의 Dependency exclude 하면서 tomcat, undertow 걸어보고 난리를 쳤지만, 그 문제가 아니었던 것.
다른 하나로는 swagger module인 springfox 나 springdoc-openapi도 영향을 준다고 한다.
다행히 springdoc-openapi-webflux를 사용하면 netty 기반으로 서버가 동작하는 것을 확인했다.
아래는 gradle 코드.
dependencies {
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
// implementation 'org.springframework.boot:spring-boot-starter-hateoas' webflux 지원 안함
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springdoc:springdoc-openapi-webflux-ui:1.3.0'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'dev.miku:r2dbc-mysql'
runtimeOnly 'io.r2dbc:r2dbc-h2'
runtimeOnly 'io.r2dbc:r2dbc-postgresql'
runtimeOnly 'mysql:mysql-connector-java'
runtimeOnly 'org.postgresql:postgresql'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework.security:spring-security-test'
}
}
'Dev & Tip > Spring' 카테고리의 다른 글
Spring session data redis 서비스 적용 후기 (0) | 2020.12.13 |
---|---|
SpringBoot AOP Java 코드로 설정 (0) | 2020.11.11 |