现在的位置: 首页 > 综合 > 正文

guice

2013年08月16日 ⁄ 综合 ⁄ 共 1997字 ⁄ 字号 评论关闭
1
package jp.co.wqf;

public interface DrawService {
    
public void draw();
}

2

package jp.co.wqf;

public class DrawServiceImpl implements DrawService {

    
public void draw() {
        System.out.println(
"Circle");
    }


}

3

package jp.co.wqf;

public interface PlayService {
    
public void play();
}

4

package jp.co.wqf;

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);
    }

}

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");
    }


}

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();
    }


}

抱歉!评论已关闭.