У меня есть под весной фасоль.Создание экземпляра Spring bean, передавая конструктор args?
public class Employee2 {
private int id;
private String name;
private double salary;
public Employee2(int id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
// some logic to call database using above values
}
Теперь у меня ниже конфигурационный файл конфигурации весны.
<bean id="emp2" class="com.basic.Employee2">
<constructor-arg name="id" value="" />
<constructor-arg name="name" value="" />
<constructor-arg name="salary" value="" />
</bean>
Теперь я не могу жестко закодировать значения в приведенной выше конфигурации, так как они являются динамическими.
Теперь я получаю весеннюю фасоль программным путем, используя код ниже. Объем боба - singelton.
Employee2 emp = (Employee2)applicationContext.getBean("emp2");
Теперь как я могу передать значения в Employee2 конструктор?
Спасибо!
Если они являются динамическими, но вы знаете их во время запуска, вы должны использовать 'spel' (весенний язык выражения) или заполнители свойств для их настройки при запуске. Вы говорите, что это синглтон, поэтому, скорее всего, это ваше дело. Если это не так, вы, вероятно, не должны создавать его как одноэлементный компонент. В любом случае - я бы полностью избегал методологии 'getBean'. У вас есть такая прекрасная инфраструктура для развязки инъекций. Почему вы хотите снова с ним связать? – Avi
Avi, Спасибо за ваш ответ. Во-первых, следует ли использовать компонент Employee2 в качестве Singleton или prototype bean? Поскольку мой компонент только содержит сеттеры и геттеры для полей и метод для вызова некоторой логики DAO. В этом случае мне нужно идти на прототип? – user755806
bellabax, спасибо, что предоставил ссылку. В моем случае мне нужен мой компонент в прототипе? – user755806