Lazy (2) 썸네일형 리스트형 Java - Reactor switchIfEmpty 사용시 주의점(Lambda, 람다 Lazy Evaluation) 리액터의 switchIfEmpty라는 메서드를 다루기 전에 자바의 Lazy evaluation(지연 평가)에 대해 다루어보자. 자바는 논리 operation을 평가할때 lazy evaluation을 사용한다. 예제 코드를 예로 들면 아래와 같다. @Test void lazyEvaluationTest() { boolean isLazy = lazyEvaluation(); if (true || isLazy) { System.out.println("method execute!!!"); } } private boolean lazyEvaluation() { System.out.println("lazy evaluation"); return true; } 위 테스트에서 결과는 어떻게 될 것인가? lazy evaluat.. JPA - LazyInitializationException No Session(다중 스레드 트랜잭션,Multi Thread Transaction) Spring boot + JPA 환경에서 개발중 멀티스레드 환경에서 JPA를 사용하면서 겪었던 문제이다. 우선 원인은 멀티 스레드 환경에서 트랜잭션의 공유가 안되는 문제였다. [상황] CompletableFuture.runAsync()를 사용하여 Multi Thread 환경에서 JPA를 사용하는 상황이었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public Object controllerMethod(@PathVariable long id, Locale locale) { CompletableFuture.runAsync(()->{ service.method(id); },executor) .exceptionally(e->{ log.debug("CompletableFuture.runAsyn.. 이전 1 다음