動的にパラメータが入ってくるメソッドで Bean ( EmployeeSaver) をインスタンス化する必要があります。これらの値は構成時に設定されないため、コンストラクター セッターを使用できません。
サンプルコード:
class MyEmployeeBean{
public void saveEmployeeDetail (Employee employee , EmployeeHistory hist ){
EmployeeDetail detail = hist.getDetail();
EmployeeSaver eSave = new EmployeeSaver(employee, detail)
saver.saveEmployee();
}
}
class EmployeeSaver {
private Employee empl;
private EmployeeDetail detail;
public EmployeeSaver(Employee emp, EmployeeDetail det){
empl = emp;
detail = det;
}
public void saveEmployee(){
// code to same the guy...
}
}
MyEmployeeSaver クラスにはデフォルトのコンストラクターがないため、ランタイム例外がスローされます。hist.getDetail() を実行するまで employeeDetail がわからないため、次の構成を使用できません!
<bean id="mySaverBean" class="come.saver.EmployeeSaver">
<constructor-arg name="empl" ref="employee" />
<constructor-arg name="hist" ref = "employeeHistory" />
</bean>
コンストラクタ引数でemployeeSaverBeanをインスタンス化する方法は?