Guice Provider绑定
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<MyService>{ @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
版权声明:本文为博主原创文章,转载请附上博文链接!