Or it doesn't seem to me to.
With this emp.xml , EmpMain correctly prints 7900 SMITH 350000.
Add autowire=byType and 7900 null 350000 is printed :Code:<bean id="eName" class="java.lang.String" > <constructor-arg type="java.lang.String" value="SMITH" /> </bean> <bean id="myPension" class="gbpackage.FinalSalaryPension" > <property name="pensionValue" value="350000" /> </bean> <bean id="emp" class="gbpackage.Emp" > <property name="empNo" value="7900" /> <property name="eName" ref="eName" /> <property name="pension" ref="myPension" /> </bean>
Code:<bean id="eName" class="java.lang.String" > <constructor-arg type="java.lang.String" value="SMITH" /> </bean> <bean id="myPension" class="gbpackage.FinalSalaryPension" > <property name="pensionValue" value="350000" /> </bean> <bean id="emp" class="gbpackage.Emp" autowire="byType" > <property name="empNo" value="7900" /> </bean>Code:public class EmpMain { public static void main (String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext (new String[] {"emp.xml"}) ; Emp emp = (Emp) context.getBean("emp") ; System.out.println (emp.getEmpNo() + " " + emp.geteName() + " " + " " + emp.getPension().getPensionValue()) ; } } public class Pension { int pensionValue ; public void setPensionValue(int pensionValue) { this.pensionValue = pensionValue ; } public int getPensionValue () { return pensionValue ; } } class FinalSalaryPension extends Pension { } class DefinedBenefitPension extends Pension { } public class Emp { private int empNo ; public String eName ; Pension pension ; public Pension getPension() { return pension ; } public void setPension(Pension pension) { this.pension = pension ; } public Emp() { } public Emp (int empNo , String eName) { this.empNo = empNo ; this.eName = eName ; } public int getEmpNo() { return empNo ; } public void setEmpNo(int empNo) { this.empNo = empNo ; } public String geteName() { return eName ; } public void seteName(String eName) { this.eName = eName ; } }


Reply With Quote