在Dagger中读取环境变量

时间:2018-07-20 16:30:23

标签: java spring dagger-2

我对使用Dagger还是比较陌生,我一直在这里阅读文档-https://google.github.io/dagger/users-guide。我以前使用Spring进行DI。我仍然不确定的一件事是-如何在Dagger中读取环境变量。

例如,在春季,我会这样做:

@Value("${envVariable}")
private String myEnvVariable; 


@Bean 
public MyClass myclass() {

    return new MyClass().builder().property(myEnvVariable).build();
   }

我不确定是否以某种方式将Dagger的用法与读取环境变量相混淆。

我假设在Dagger中我有一个构造MyClass的模块,然后我使用@Inject批注注入依赖项,但是不确定如何获取环境变量的值。

1 个答案:

答案 0 :(得分:2)

我最终定义了一种将执行以下操作的方法:

@Provides
@Named("ENV_VARIABLE_NAME")
@Singleton
public String getMyEnv() {
   return System.getenv("ENV_VARIABLE_NAME");
}

为了使用,我有@Named注释,因此,我将在我的其他Module类中注入一个带有Named注释的字符串。