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() 方法。
