天天看點

Guice入門執行個體和單例模式

package com.ilucky.guice;

import com.google.inject.Guice;
import com.google.inject.Injector;

/**
 * v1.0:20161114
 * @author IluckySi
 * 入門執行個體和單例模式
 * Binder接口作用是建立接口和其實作類的映射關系.
 * Module接口作用是維護一組 Bindings.
 * Injector接口作用是建立對象和維護對象的生命周期.
 * Guice類是建立Injector和Modules的聯系.
 */
public class MainTest {

    public static void main(String[] args) {
        Injector injector = Guice.createInjector(new MyModule());
        MyService myService = injector.getInstance(MyService.class);
        myService.service("Hello Guice!");

        //測試單例模式:binder.bind(MyService.class).to(MyServiceImpl.class).in(Scopes.SINGLETON);.
        MyService myService2 = injector.getInstance(MyService.class);
        System.out.println(myService.equals(myService2));//true.
    }
}
           
package com.ilucky.guice;

import com.google.inject.Binder;
import com.google.inject.Module;
import com.google.inject.Scopes;

public class MyModule implements Module{

    public void configure(Binder binder) {
        //binder.bind(MyService.class).to(MyServiceImpl.class);
        binder.bind(MyService.class).to(MyServiceImpl.class).in(Scopes.SINGLETON);
    }
}           
package com.ilucky.guice;

public interface MyService {

    public void service(String service);
}
           
package com.ilucky.guice;

public class MyServiceImpl implements MyService {

    public void service(String service) {
        System.out.println("===>" + service);
    }
}
           

繼續閱讀