java - 从 Guice 模块调用方法?

标签 java guice

因此,我需要处理一个 Guice 项目,该项目是我从早期参与该项目的开发人员那里继承的,并且我有一个特定的问题需要解决。 我简单介绍一下应用设计。

MyService.java

public static void main(String[] args) {

    Injector injector = createInjector(new MyModule());
}

MyModule.java

// ...

@Inject
@Provides
@Singleton
public Client getClient(@Named("config") String config) {
    // Client should be singleton
    return new Client(config); 
} 

现在的问题是我必须编写使用 Client 的服务操作,该客户端作为单例存在于应用程序中的某个位置,但我不知道什么是最好的方法获得它。我需要类似下面的东西。

ServiceOperations.java

// ...

public String getData() {
    // somehow obtain that client - how?
    // and then call operations on the client
    return client.getData();
}

如果不是 Guice,我只会有一个 ClientFactory,并从我的 getData() 中调用类似 ClientFactory.getClientInstance() 的内容code> 方法并有客户端引用,但是使用 Guice,获取它的正确方法是什么?

PS。我刚刚学习Guice。谢谢!

最佳答案

由于您已经有了 Client 对象的提供程序,因此从这里开始应该很简单:

class ServiceOperations {
    @Inject
    public ServiceOperations(Client client) {
        this.client = client;
    }

    public String getData() {
        return client.getData();
    }
}

神奇的东西,对吧?

关于java - 从 Guice 模块调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40198242/

相关文章:

java - 从 android 函数名称或变量而不是硬编码获取 Assets 目录

java - 如何从使用 Google @Inject 的 Singleton 类调用非静态公共(public)方法

guice - 用 Guice 代替抽象工厂?

java - 使用 HashMap 计算文档频率 [Java]

java - @Aspect 与 RMI

java - 听众应该能够删除听众吗?

java - JAXB 和 Guice : How to integrate and visualize?

java - 嵌套 View 的 Presenter 未初始化且无法处理其 View 的事件

google-app-engine - 在 Java GAE 后端 Servlet 中使用 Guice 注入(inject)

java - 访问 gridview 中的每个 TextView 并将颜色设置为白色