package com.ilucky.guice.test7;import com.google.inject.Guice;import com.google.inject.Injector;/** * v1.0:20161114 * Provider绑定. * 如果建对象的过程很复杂,我们就会考虑,是不是可以把它独立出来,形成一个专门的类,基于这个思想, * Guice提供了一个接口Provider,Provider就像 Factories一样创建和返回对象. * 在大部分情况下,客户端可以直接依赖Guice框架来为服务(Services)创建依赖的对象. * 但是少数情况下,应用程序需要为一个特定类型的对象定制创建流程(Object creation process), * 这样可以控制对象创建的数量,提供缓存(Cache)机制等,基于这种需求,Guice提供了Provider类. * 只要实现Provider接口,就会得到专门为创建相应类型对象所需的类. */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!"); }}/**===>Hello Guice!*/
package com.ilucky.guice.test7;import com.google.inject.Binder;import com.google.inject.Module;public class MyModule implements Module{ public void configure(Binder binder) { binder.bind(MyService.class).toProvider(MyProvider.class); }}
package com.ilucky.guice.test7;import com.google.inject.Provider;public class MyProvider implements Provider{ @Override public MyService get() { MyService myService = new MyServiceImpl(); return myService; } }
package com.ilucky.guice.test7;public interface MyService { public void service(String service);}
package com.ilucky.guice.test7;public class MyServiceImpl implements MyService { public void service(String service) { System.out.println("===>" + service); }}
---------------------
原文:https://blog.csdn.net/sidongxue2/article/details/72626808 版权声明:本文为博主原创文章,转载请附上博文链接!