如果bean类(A)的属性也是bean(B)。那在生成bean(A) 时如何初始化bean(B)? 有2种方式,使用Autowired注解,使用ref标签引用
<bean id="lisi" class="bean.Lisi"> <constructor-arg value="12"/> </bean> // 使用ref // 假设User类中有个属性类型是Lisi <bean id="user" class="bean.User"> // 将User类中的lisi 注入一个Lisi类型的对象 <property name="lisi"> <ref bean="lisi"/> </property> </bean> // 使用Autowired // 将bean 按名字注入到User类中的变量中 <bean id="user" class="bean.User" autowire="byName"></bean>
public class User { @Autowired private Lisi lisi; public Lisi getLisi() { return lisi; } public void setLisi(Lisi lisi) { this.lisi = lisi; } }
public static void main( String[] args ) { BeanFactory factory = new ClassPathXmlApplicationContext("springg.xml"); User userManager = (User)factory.getBean("user"); System.out.println(userManager.getLisi().getAge()); }