Существует ли простой способ для добавления простых параметров примитивного типа (string и int) в bean-компоненты?
Что мне нужно, чтобы найти приблизительный эквивалент чего-то подобного из весны.xml:
<bean id="aBean" ...>
<property name="fieldName" value="aStringValue"/>
<property name="anotherFieldName" value="123"/>
</bean>
Значения могут быть инжектированы в конструктор, введены поле или метод, но я не хочу использовать отдельную именованную аннотацию или фабрику или провайдера для каждого значения, которое мне нужно передать вbean.
РЕДАКТИРОВАТЬ: мое решение
Вот то, к чему я наконец пришел.Я думаю, что это наиболее близко к тому, что я ищу, но любые улучшения приветствуются.
Я обнаружил, что в модуле я могу объявить метод провайдера и использовать его для установки любых необходимых мне свойств:
MyModule extends AbstractModule{
...
@Provides @Named("testBean") MyTestBean createTestBean(MembersInjector<TestBean> mi){
TestBean test = new TestBean();
mi.injectMembers(test);
test.setFieldName("aStringValue");
test.setAnotherFieldName(123);
return test;
}
...
}
Хорошим моментом является то, что метод Provides заменяет bind () для bean-компонента, и таким образом фактическое количество строк не сильно увеличивается.
Я все еще не на 100%уверен в любых побочных эффектах, но выглядит многообещающе.