Skip to content

Commit fdf1d14

Browse files
committed
Finished the example.
1 parent b2bfdb1 commit fdf1d14

File tree

5 files changed

+45
-0
lines changed

5 files changed

+45
-0
lines changed

dependency-injection/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,10 @@
1414
<artifactId>junit</artifactId>
1515
<scope>test</scope>
1616
</dependency>
17+
<dependency>
18+
<groupId>com.google.inject</groupId>
19+
<artifactId>guice</artifactId>
20+
<version>4.0</version>
21+
</dependency>
1722
</dependencies>
1823
</project>

dependency-injection/src/main/java/com/iluwatar/App.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.iluwatar;
22

3+
import com.google.inject.Guice;
4+
import com.google.inject.Injector;
5+
36
public class App {
47

58
public static void main( String[] args ) {
@@ -8,5 +11,9 @@ public static void main( String[] args ) {
811

912
AdvancedWizard advancedWizard = new AdvancedWizard(new SecondBreakfastTobacco());
1013
advancedWizard.smoke();
14+
15+
Injector injector = Guice.createInjector(new TobaccoModule());
16+
GuiceWizard guiceWizard = injector.getInstance(GuiceWizard.class);
17+
guiceWizard.smoke();
1118
}
1219
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.iluwatar;
2+
3+
import javax.inject.Inject;
4+
5+
public class GuiceWizard implements Wizard {
6+
7+
private Tobacco tobacco;
8+
9+
@Inject
10+
public GuiceWizard(Tobacco tobacco) {
11+
this.tobacco = tobacco;
12+
}
13+
14+
@Override
15+
public void smoke() {
16+
tobacco.smoke(this);
17+
}
18+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.iluwatar;
2+
3+
public class RivendellTobacco extends Tobacco {
4+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.iluwatar;
2+
3+
import com.google.inject.AbstractModule;
4+
5+
public class TobaccoModule extends AbstractModule {
6+
7+
@Override
8+
protected void configure() {
9+
bind(Tobacco.class).to(RivendellTobacco.class);
10+
}
11+
}

0 commit comments

Comments
 (0)