Spring/Spring WebFlux3 Spring R2DBC CRUD 예제 Spring R2DBC CRUD 예제 WebFlux 를 사용한다면, 반쪽짜리 NonBlocking 서버가 되지 않기 위해선 persisent layer 의 영역도 reactive 하게 변경해주어야 한다. 다행이 spring-r2dbc-data 와 mysql 드라이버를 지원함으로 spring r2dbc 기반 Repository를 구현 및 테스트 할수 있다. pom.xml 에 다음 라이브러리를 넣어 준다. spring-boot-starter-data-r2dbc org.springframework.boot dev.miku r2dbc-mysql runtime 데이상 dev.miku 는 동작하지 않는다, 메인터런스를 포기하고 com.github.jasync-sql로 옮겼다. mysql 의 r2dbc library.. 2021. 4. 29. spring webflux error 처리 spring webflux error 처리 Mono / Flux .doOnError() : 예외가 발생했을 경우 특정 행위를 실행 시킬대 사용 .onErrorReturn () : 예외가 발생 했을때 특정 값을 리턴 함 .onErrorResume() : 예외가 발생 했을때 오류에 따라 대체를 선택하는 기능을 사용함. 오류가 발생하면 반환된 대체 게시자를 구독 하여 사용 .onErrorContinue() : 예외가 발생 했을대 멈추지 않고 해당 영역만 skip 하고 동작함. @Slf4j public class WebFluxError { @Test public void onErrorResume() { Flux.range(0, 5) .map(integer -> { if (integer == 3) { throw .. 2020. 6. 22. webflux null, empty 처리 webflux null, empty 처리 Mono / Flux .switchIfEmpty() : Mono/Flux 가 데이터 없이 완료된 경우 이면 대체 Mono, Flux 로 대체 함. @RequestMapping("/audience/get") public Mono findAudienceV2(ServerHttpRequest serverHttpRequest) { try { String serverId = serverHttpRequest.getQueryParams().getFirst("server_id"); String id = serverHttpRequest.getQueryParams().getFirst("id"); log.debug("server id = {} id = {}", serverId, id).. 2020. 5. 26. 이전 1 다음 728x90