From fdf1d148fa4811f5b2101cec69256c261f8f3281 Mon Sep 17 00:00:00 2001 From: Ilkka Seppala Date: Mon, 25 May 2015 18:38:42 +0300 Subject: [PATCH] Finished the example. --- dependency-injection/pom.xml | 5 +++++ .../src/main/java/com/iluwatar/App.java | 7 +++++++ .../main/java/com/iluwatar/GuiceWizard.java | 18 ++++++++++++++++++ .../java/com/iluwatar/RivendellTobacco.java | 4 ++++ .../main/java/com/iluwatar/TobaccoModule.java | 11 +++++++++++ 5 files changed, 45 insertions(+) create mode 100644 dependency-injection/src/main/java/com/iluwatar/GuiceWizard.java create mode 100644 dependency-injection/src/main/java/com/iluwatar/RivendellTobacco.java create mode 100644 dependency-injection/src/main/java/com/iluwatar/TobaccoModule.java diff --git a/dependency-injection/pom.xml b/dependency-injection/pom.xml index 3062f724c..ae26745f7 100644 --- a/dependency-injection/pom.xml +++ b/dependency-injection/pom.xml @@ -14,5 +14,10 @@ junit test + + com.google.inject + guice + 4.0 + diff --git a/dependency-injection/src/main/java/com/iluwatar/App.java b/dependency-injection/src/main/java/com/iluwatar/App.java index fc5a4d67d..d2ad6eab2 100644 --- a/dependency-injection/src/main/java/com/iluwatar/App.java +++ b/dependency-injection/src/main/java/com/iluwatar/App.java @@ -1,5 +1,8 @@ package com.iluwatar; +import com.google.inject.Guice; +import com.google.inject.Injector; + public class App { public static void main( String[] args ) { @@ -8,5 +11,9 @@ public class App { AdvancedWizard advancedWizard = new AdvancedWizard(new SecondBreakfastTobacco()); advancedWizard.smoke(); + + Injector injector = Guice.createInjector(new TobaccoModule()); + GuiceWizard guiceWizard = injector.getInstance(GuiceWizard.class); + guiceWizard.smoke(); } } diff --git a/dependency-injection/src/main/java/com/iluwatar/GuiceWizard.java b/dependency-injection/src/main/java/com/iluwatar/GuiceWizard.java new file mode 100644 index 000000000..cc0c559cd --- /dev/null +++ b/dependency-injection/src/main/java/com/iluwatar/GuiceWizard.java @@ -0,0 +1,18 @@ +package com.iluwatar; + +import javax.inject.Inject; + +public class GuiceWizard implements Wizard { + + private Tobacco tobacco; + + @Inject + public GuiceWizard(Tobacco tobacco) { + this.tobacco = tobacco; + } + + @Override + public void smoke() { + tobacco.smoke(this); + } +} diff --git a/dependency-injection/src/main/java/com/iluwatar/RivendellTobacco.java b/dependency-injection/src/main/java/com/iluwatar/RivendellTobacco.java new file mode 100644 index 000000000..a37c7a7fe --- /dev/null +++ b/dependency-injection/src/main/java/com/iluwatar/RivendellTobacco.java @@ -0,0 +1,4 @@ +package com.iluwatar; + +public class RivendellTobacco extends Tobacco { +} diff --git a/dependency-injection/src/main/java/com/iluwatar/TobaccoModule.java b/dependency-injection/src/main/java/com/iluwatar/TobaccoModule.java new file mode 100644 index 000000000..c5b07bb59 --- /dev/null +++ b/dependency-injection/src/main/java/com/iluwatar/TobaccoModule.java @@ -0,0 +1,11 @@ +package com.iluwatar; + +import com.google.inject.AbstractModule; + +public class TobaccoModule extends AbstractModule { + + @Override + protected void configure() { + bind(Tobacco.class).to(RivendellTobacco.class); + } +}