1
package jp.co.wqf;
public interface DrawService {
public void draw();
}
public interface DrawService {
public void draw();
}
2
package jp.co.wqf;
public class DrawServiceImpl implements DrawService {
public void draw() {
System.out.println("Circle");
}
}
public class DrawServiceImpl implements DrawService {
public void draw() {
System.out.println("Circle");
}
}
3
package jp.co.wqf;
public interface PlayService {
public void play();
}
public interface PlayService {
public void play();
}
4
package jp.co.wqf;
public class PlayServiceImpl implements PlayService {
public void play() {
System.out.println("Piano");
}
}
public class PlayServiceImpl implements PlayService {
public void play() {
System.out.println("Piano");
}
}
5
package jp.co.wqf;
import com.google.inject.Inject;
public class Client {
private DrawService drawService;
private PlayService playService;
private String str;
@Inject
public void injectDrawService(DrawService drawService){
this.drawService = drawService;
}
@Inject
public void injectPlayService(PlayService playService){
this.playService = playService;
}
@Inject
public void injectString(String str){
this.str = str;
}
public void doAll(){
this.drawService.draw();
this.playService.play();
System.out.println(str);
}
}
import com.google.inject.Inject;
public class Client {
private DrawService drawService;
private PlayService playService;
private String str;
@Inject
public void injectDrawService(DrawService drawService){
this.drawService = drawService;
}
@Inject
public void injectPlayService(PlayService playService){
this.playService = playService;
}
@Inject
public void injectString(String str){
this.str = str;
}
public void doAll(){
this.drawService.draw();
this.playService.play();
System.out.println(str);
}
}
6
package jp.co.wqf;
import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
public class MyModule extends AbstractModule {
public void configure() {
bind(DrawService.class).to(DrawServiceImpl.class).in(Scopes.SINGLETON);
bind(PlayService.class).to(PlayServiceImpl.class).in(Scopes.SINGLETON);
bind(String.class).toInstance("hello");
}
}
import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
public class MyModule extends AbstractModule {
public void configure() {
bind(DrawService.class).to(DrawServiceImpl.class).in(Scopes.SINGLETON);
bind(PlayService.class).to(PlayServiceImpl.class).in(Scopes.SINGLETON);
bind(String.class).toInstance("hello");
}
}
7
package jp.co.wqf;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.google.inject.Guice;
import com.google.inject.Injector;
public class ClientTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Test
public void testPrintStr() {
Injector injector = Guice.createInjector(new MyModule());
Client client = injector.getInstance(Client.class);
client.doAll();
}
}
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.google.inject.Guice;
import com.google.inject.Injector;
public class ClientTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Test
public void testPrintStr() {
Injector injector = Guice.createInjector(new MyModule());
Client client = injector.getInstance(Client.class);
client.doAll();
}
}