From b139e5df727f4ac39d1819815c0def0acbc21e61 Mon Sep 17 00:00:00 2001 From: Jihun Park Date: Wed, 7 Dec 2022 22:33:16 +0900 Subject: [PATCH] =?UTF-8?q?[Proxy=20Pattern=20&=20Decorator=20Pattern]=20?= =?UTF-8?q?=EC=98=88=EC=A0=9C=20=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20?= =?UTF-8?q?=EB=A7=8C=EB=93=A4=EA=B8=B0=20v3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hello/proxy/app/v3/OrderControllerV3.java | 27 +++++++++++++++++++ .../hello/proxy/app/v3/OrderRepositoryV3.java | 23 ++++++++++++++++ .../hello/proxy/app/v3/OrderServiceV3.java | 17 ++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 proxy/src/main/java/hello/proxy/app/v3/OrderControllerV3.java create mode 100644 proxy/src/main/java/hello/proxy/app/v3/OrderRepositoryV3.java create mode 100644 proxy/src/main/java/hello/proxy/app/v3/OrderServiceV3.java diff --git a/proxy/src/main/java/hello/proxy/app/v3/OrderControllerV3.java b/proxy/src/main/java/hello/proxy/app/v3/OrderControllerV3.java new file mode 100644 index 0000000..e0742ce --- /dev/null +++ b/proxy/src/main/java/hello/proxy/app/v3/OrderControllerV3.java @@ -0,0 +1,27 @@ +package hello.proxy.app.v3; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@RestController +public class OrderControllerV3 { + + private final OrderServiceV3 orderService; + + public OrderControllerV3(OrderServiceV3 orderService) { + this.orderService = orderService; + } + + @GetMapping("/v3/request") + public String request(String itemId) { + orderService.orderItem(itemId); + return "ok"; + } + + @GetMapping("/v3/no-log") + public String noLog() { + return "ok"; + } +} diff --git a/proxy/src/main/java/hello/proxy/app/v3/OrderRepositoryV3.java b/proxy/src/main/java/hello/proxy/app/v3/OrderRepositoryV3.java new file mode 100644 index 0000000..35e40bc --- /dev/null +++ b/proxy/src/main/java/hello/proxy/app/v3/OrderRepositoryV3.java @@ -0,0 +1,23 @@ +package hello.proxy.app.v3; + +import org.springframework.stereotype.Repository; + +@Repository +public class OrderRepositoryV3 { + + public void save(String itemId) { + //저장 로직 + if (itemId.equals("ex")) { + throw new IllegalStateException("예외 발생!"); + } + sleep(1000); + } + + private void sleep(int millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } +} diff --git a/proxy/src/main/java/hello/proxy/app/v3/OrderServiceV3.java b/proxy/src/main/java/hello/proxy/app/v3/OrderServiceV3.java new file mode 100644 index 0000000..d93cb0e --- /dev/null +++ b/proxy/src/main/java/hello/proxy/app/v3/OrderServiceV3.java @@ -0,0 +1,17 @@ +package hello.proxy.app.v3; + +import org.springframework.stereotype.Service; + +@Service +public class OrderServiceV3 { + + private final OrderRepositoryV3 orderRepository; + + public OrderServiceV3(OrderRepositoryV3 orderRepository) { + this.orderRepository = orderRepository; + } + + public void orderItem(String itemId) { + orderRepository.save(itemId); + } +}