私は春の豆の下にあります。
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>
これらは動的であるため、上記の構成の値をハードコーディングすることはできません。
現在、以下のコードを使用してプログラムでSpringBeanを取得しています。 Beanスコープはシングルトンです。
Employee2 emp = (Employee2)applicationContext.getBean("emp2");
今どうすれば値をEmployee2コンストラクターに渡すことができますか?
ありがとう!
ApplicationContext#getBean(String name、Object ... params) メソッドを使用できます。
Bean定義で指定されたデフォルト引数(存在する場合)をオーバーライドして、明示的なコンストラクター引数/ファクトリメソッド引数を指定できます。
例えば:
Integer param1 = 2;
String param2 = "test";
Double param3 = 3.4;
Employee2 emp =
(Employee2)applicationContext.getBean("emp2", param1, param2, param3);
とにかく、これはおそらく機能しますが、質問の下のコメントの1つに記載されているように、Spring ELの使用を検討する必要があります。