Guice快速入门教程中,有哪些技巧和最佳实践?

摘要:Github 主页:https:github.comgoogleguice API:http:google.github.ioguiceapi-docs4.0javadoc From: https:www.jian
Github 主页:https://github.com/google/guice API:http://google.github.io/guice/api-docs/4.0/javadoc/ From: https://www.jianshu.com/p/7fba7b43146a Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 6 and above, brought to you by Google. 一个轻量级的依赖注入框架。 关于 Spring 的依赖注入,请参见 Spring 依赖注入 DI 的方式 例如我们有一个 Communication 类,它实际上是利用 Communicator 来真正的发送消息。 添加 Maven 的依赖: 1 <dependency> 2 <groupId>com.google.inject</groupId> 3 <artifactId>guice</artifactId> 4 <version>4.0</version> 5 </dependency> 我们首先定义 Communicator 接口,和它的一个实现类 DefaultCommunicatorImpl: 1 public interface Communicator { 2 boolean sendMessage(String message); 3 } 1 public class DefaultCommunicatorImpl implements Communicator { 2 public boolean sendMessage(String message) { 3 System.out.println("Sending Message + " + message); 4 return true; 5 } 6 } 随后我们通过 @Inject 注解来在 Communication 类中注入 Communicator 类的依赖: 1 import com.google.inject.Guice; 2 import com.google.inject.Inject; 3 import com.google.inject.Injector; 4 5 import java.util.logging.Logger; 6 7 public class Communication { 8 @Inject 9 private Communicator communicator; 10 11 public Communication(Boolean keepRecords) { 12 if (keepRecords) { 13 System.out.println("Message logging enabled"); 14 } 15 } 16 17 public boolean sendMessage(String message) { 18 communicator.sendMessage(message); 19 return true; 20 } 21 22 public static void main(String[] args) { 23 Injector injector = Guice.createInjector(new BasicModule()); 24 25 Communication comms = injector.getInstance(Communication.class); 26 27 comms.sendMessage("hello world"); 28 } 29 } 在 main() 中,可以看到我们通过 Injector 得到了一个 Communication 实例,随后调用了 sendMessage() 方法。
阅读全文