04-Spring-IOC-基于xml配置文件的自动注入

starrylsi
2024-09-11 / 0 评论 / 11 阅读 / 正在检测是否收录...

关键: 在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

评论 (0)

取消