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); + } +}