我对使用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批注注入依赖项,但是不确定如何获取环境变量的值。
答案 0 :(得分:2)
我最终定义了一种将执行以下操作的方法:
@Provides
@Named("ENV_VARIABLE_NAME")
@Singleton
public String getMyEnv() {
return System.getenv("ENV_VARIABLE_NAME");
}
为了使用,我有@Named注释,因此,我将在我的其他Module类中注入一个带有Named注释的字符串。