From a27e0923b048311fa1492494332c37a48cee9be4 Mon Sep 17 00:00:00 2001 From: romannimets <137268574+romannimets@users.noreply.github.com> Date: Sat, 15 Jun 2024 06:43:36 +0200 Subject: [PATCH] refactor: Refactor Layered Architecture pattern #2936 (#2938) --- .../src/main/java/com/iluwatar/layers/Runner.java | 10 ++++++++++ layered-architecture/src/main/java/dto/CakeInfo.java | 9 ++++----- .../src/main/java/dto/CakeLayerInfo.java | 10 ++++------ .../src/main/java/dto/CakeToppingInfo.java | 11 ++++------- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/layered-architecture/src/main/java/com/iluwatar/layers/Runner.java b/layered-architecture/src/main/java/com/iluwatar/layers/Runner.java index 5e2ce2d8d..5e9d28758 100644 --- a/layered-architecture/src/main/java/com/iluwatar/layers/Runner.java +++ b/layered-architecture/src/main/java/com/iluwatar/layers/Runner.java @@ -32,6 +32,10 @@ import java.util.List; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.stereotype.Component; import service.CakeBakingService; import view.CakeViewImpl; @@ -44,6 +48,8 @@ import view.CakeViewImpl; * It uses the CakeBakingService to save new layers and toppings and to bake new cakes. * It also handles exceptions that might occur during the cake baking process.

*/ +@EntityScan(basePackages = "entity") +@ComponentScan(basePackages = {"com.iluwatar.layers", "service", "dto", "exception", "view", "dao"}) @Component @Slf4j public class Runner implements CommandLineRunner { @@ -64,6 +70,10 @@ public class Runner implements CommandLineRunner { cakeView.render(); } + public static void main(String[] args) { + SpringApplication.run(Runner.class, args); + } + /** * Initializes the example data. */ diff --git a/layered-architecture/src/main/java/dto/CakeInfo.java b/layered-architecture/src/main/java/dto/CakeInfo.java index a93b60c63..0bda58239 100644 --- a/layered-architecture/src/main/java/dto/CakeInfo.java +++ b/layered-architecture/src/main/java/dto/CakeInfo.java @@ -26,14 +26,13 @@ package dto; import java.util.List; -import java.util.Optional; /** * DTO for cakes. */ public class CakeInfo { - public final Optional id; + public final Long id; public final CakeToppingInfo cakeToppingInfo; public final List cakeLayerInfos; @@ -41,7 +40,7 @@ public class CakeInfo { * Constructor. */ public CakeInfo(Long id, CakeToppingInfo cakeToppingInfo, List cakeLayerInfos) { - this.id = Optional.of(id); + this.id = id; this.cakeToppingInfo = cakeToppingInfo; this.cakeLayerInfos = cakeLayerInfos; } @@ -50,7 +49,7 @@ public class CakeInfo { * Constructor. */ public CakeInfo(CakeToppingInfo cakeToppingInfo, List cakeLayerInfos) { - this.id = Optional.empty(); + this.id = null; this.cakeToppingInfo = cakeToppingInfo; this.cakeLayerInfos = cakeLayerInfos; } @@ -66,7 +65,7 @@ public class CakeInfo { @Override public String toString() { - return String.format("CakeInfo id=%d topping=%s layers=%s totalCalories=%d", id.orElse(-1L), + return String.format("CakeInfo id=%d topping=%s layers=%s totalCalories=%d", id, cakeToppingInfo, cakeLayerInfos, calculateTotalCalories()); } } diff --git a/layered-architecture/src/main/java/dto/CakeLayerInfo.java b/layered-architecture/src/main/java/dto/CakeLayerInfo.java index 244ae2cf6..6689b8746 100644 --- a/layered-architecture/src/main/java/dto/CakeLayerInfo.java +++ b/layered-architecture/src/main/java/dto/CakeLayerInfo.java @@ -25,14 +25,12 @@ package dto; -import java.util.Optional; - /** * DTO for cake layers. */ public class CakeLayerInfo { - public final Optional id; + public final Long id; public final String name; public final int calories; @@ -40,7 +38,7 @@ public class CakeLayerInfo { * Constructor. */ public CakeLayerInfo(Long id, String name, int calories) { - this.id = Optional.of(id); + this.id = id; this.name = name; this.calories = calories; } @@ -49,13 +47,13 @@ public class CakeLayerInfo { * Constructor. */ public CakeLayerInfo(String name, int calories) { - this.id = Optional.empty(); + this.id = null; this.name = name; this.calories = calories; } @Override public String toString() { - return String.format("CakeLayerInfo id=%d name=%s calories=%d", id.orElse(-1L), name, calories); + return String.format("CakeLayerInfo id=%d name=%s calories=%d", id, name, calories); } } diff --git a/layered-architecture/src/main/java/dto/CakeToppingInfo.java b/layered-architecture/src/main/java/dto/CakeToppingInfo.java index a1e2e9ba4..a36572086 100644 --- a/layered-architecture/src/main/java/dto/CakeToppingInfo.java +++ b/layered-architecture/src/main/java/dto/CakeToppingInfo.java @@ -25,15 +25,12 @@ package dto; - -import java.util.Optional; - /** * DTO for cake toppings. */ public class CakeToppingInfo { - public final Optional id; + public final Long id; public final String name; public final int calories; @@ -41,7 +38,7 @@ public class CakeToppingInfo { * Constructor. */ public CakeToppingInfo(Long id, String name, int calories) { - this.id = Optional.of(id); + this.id = id; this.name = name; this.calories = calories; } @@ -50,14 +47,14 @@ public class CakeToppingInfo { * Constructor. */ public CakeToppingInfo(String name, int calories) { - this.id = Optional.empty(); + this.id = null; this.name = name; this.calories = calories; } @Override public String toString() { - return String.format("CakeToppingInfo id=%d name=%s calories=%d", id.orElse(-1L), name, + return String.format("CakeToppingInfo id=%d name=%s calories=%d", id, name, calories); } }