diff --git a/ratpack/src/main/java/com/baeldung/guice/Application.java b/ratpack/src/main/java/com/baeldung/guice/Application.java index 39d29b9b2b..4e837501da 100644 --- a/ratpack/src/main/java/com/baeldung/guice/Application.java +++ b/ratpack/src/main/java/com/baeldung/guice/Application.java @@ -2,6 +2,7 @@ package com.baeldung.guice; import com.baeldung.guice.config.DependencyModule; import com.baeldung.guice.service.DataPumpService; +import com.baeldung.guice.service.ServiceFactory; import com.baeldung.guice.service.impl.DataPumpServiceImpl; import ratpack.guice.Guice; @@ -15,8 +16,8 @@ public class Application { .start(server -> server.registry(Guice.registry(bindings -> bindings.module(DependencyModule.class))) .handlers(chain -> chain.get("randomString", ctx -> { DataPumpService dataPumpService = ctx.get(DataPumpService.class); - ctx.render(dataPumpService.generate().length()); - }))); + ctx.render(dataPumpService.generate()); + }).get("factory", ctx -> ctx.render(ServiceFactory.getInstance().generate())))); // RatpackServer.start(server -> server // .registry(Guice @@ -24,8 +25,8 @@ public class Application { // .handlers(chain -> chain.get("randomString", ctx -> { // DataPumpService dataPumpService = ctx.get(DataPumpService.class); // ctx.render(dataPumpService.generate()); -// }))); +// }).get("factory", ctx -> ctx.render(ServiceFactory.getInstance().generate())))); } -} +} \ No newline at end of file diff --git a/ratpack/src/main/java/com/baeldung/guice/service/DataPumpService.java b/ratpack/src/main/java/com/baeldung/guice/service/DataPumpService.java index 6adfec2365..01b7dbabef 100644 --- a/ratpack/src/main/java/com/baeldung/guice/service/DataPumpService.java +++ b/ratpack/src/main/java/com/baeldung/guice/service/DataPumpService.java @@ -1,9 +1,5 @@ package com.baeldung.guice.service; -import com.baeldung.guice.service.impl.DataPumpServiceImpl; -import com.google.inject.ImplementedBy; - -@ImplementedBy(DataPumpServiceImpl.class) public interface DataPumpService { String generate(); diff --git a/ratpack/src/main/java/com/baeldung/guice/service/ServiceFactory.java b/ratpack/src/main/java/com/baeldung/guice/service/ServiceFactory.java new file mode 100644 index 0000000000..d11beb1cb2 --- /dev/null +++ b/ratpack/src/main/java/com/baeldung/guice/service/ServiceFactory.java @@ -0,0 +1,20 @@ +package com.baeldung.guice.service; + +import com.baeldung.guice.service.impl.DataPumpServiceImpl; + +public class ServiceFactory { + + private static DataPumpService instance; + + public static void setInstance(DataPumpService dataPumpService) { + instance = dataPumpService; + } + + public static DataPumpService getInstance() { + if (instance == null) { + return new DataPumpServiceImpl(); + } + return instance; + } + +}