2017-01-31 8 views
0

Я использую стороннюю библиотеку. Я использую конструктор с одним параметром строкового класса SampleClass:Строковый производитель по параметру конструктора третьей стороны

public SampleClass(String apiKey) {...} 

Тогда на моих занятиях я нагнетание SampleClass на поле:

public MyClass { 
    @Inject private SampleClass sc; 

    public MyClass() { ... } 

Я создал производитель строк в для того чтобы получить строку Api Key от переменных окружения ОС:

public class SettingsPropertiesProducer { 

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

Как я могу связать или связать этот производитель первого параметра строкового SomeClass(String apiKey) конструктор?

+0

Что такое @ com.living.commty.boot.cdi.qualifiers.ApiKey? Это квалификатор? Опубликуйте свой код. – Loc

ответ

1

Вы можете создать еще один производитель для образца класса

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

Если вы SampleClass имеет конструктор без аргументов, вы можете иметь конфликт, когда инъекционное и вы, возможно, потребуется создать дополнительный спецификатор к Производитель SampleClass

 Смежные вопросы

  • Нет связанных вопросов^_^