第三方构造函数参数上的字符串生成器

时间:2017-01-31 14:16:17

标签: java-ee

我正在使用第三方库。我正在使用带有一个类SampleClass的字符串参数的构造函数:

public SampleClass(String apiKey) {...}

然后在我的课程上,我在一个字段上注入SampleClass

public MyClass {
    @Inject private SampleClass sc;

    public MyClass() { ... }

我已经创建了一个String生成器,以便从OS环境变量中获取String Api Key:

public class SettingsPropertiesProducer {

    @Produces @com.living.commty.boot.cdi.qualifiers.ApiKey
    public String getApiKey()
    {
        return System.getenv(...
    }
}

如何将此生成器绑定或链接到SomeClass(String apiKey)构造函数的第一个字符串参数?

1 个答案:

答案 0 :(得分:1)

您可以为Sample类创建另一个生产者

public class SampleClassFactory {
     @Produces 
     public SampleClass getSampleClass(@Inject @ApiKey final String apiKey) {
        return new SampleClass(apiKey);
    }
}

如果您的SampleClass有一个无参数构造函数,则在注入时可能会发生冲突,您可能需要为SampleClass生成器创建一个额外的限定符