关键: 在bean标签中的 autowire属性中设置四种装配方式的一种值
掌握: 了解每一个装配方式是什么意思
public class Car {
private int id;
private String name;
public class Person {
private Car car;
public Person(Car car) {
this.car = car;
}
<bean id="car" class="top.starrylsi.pojo.Car">
<property name="id" value="1" />
<property name="name" value="宝马1" />
</bean>
<bean id="car1" class="top.starrylsi.pojo.Car">
<property name="id" value="2" />
<property name="name" value="宝马2" />
</bean>
<!--
autowire 设置自动装配的方式
default 和 no 一样,都表示不装配, 如果对象不你手动设置,就没有值。
byName 表示Spring容器会自动按照子对象的属性名,当成是id来查找对象。
找到就注入,找不到就为null
举例:private Car car;
就会以car做为id去spring容器中去查找对象。找到就把值注入给属性car。
byType 表示Spring容器会自动的按照子对象的类型去查找bean对象注入。
举例:private Car car;
Spring容器就会自动的按照Car.class类型去Spring容器中查找。
如果说,找到一个,就注入
如果没有找到,值就为null
如果说,找到多个,就报错。
constructor 表示Spring容器会按照子对象的类型去查找构造方法,中参数需要的类型去注入。
先按照类型查询,如果找到一个就注入。
如果找到多个,再按照构造方法中参数的变量名做为id来查找,如果找到就注入。如果没有找到,就为null
如果没有找到,值也为null
-->
<bean id="p22" class="top.starrylsi.pojo.Person" autowire="constructor">
<property name="id" value="1"/>
<property name="name" value="华仔"/>
<property name="age" value="18"/>
<property name="phone" value="18699998888"/>
</bean>
评论 (0)