Spring自动装配详解

在Spring中,支持 5 种装配模式。
  • no – 缺省情况下,自动配置是通过“ref”属性手动设定
  • byName – 根据属性名称自动装配。如果一个bean的名称和其他bean属性的名称是一样的,将会自装配它。
  • byType – 按数据类型自动装配。如果一个bean的数据类型是用其它bean属性的数据类型,兼容并自动装配它。
  • constructor – 在构造函数参数的byType方式。
  • autodetect – 如果找到默认的构造函数,使用“自动装配用构造”; 否则,使用“按类型自动装配”。
①.在没有配置autowire属性的情况下,缺省为no,即必须通过ref属性指定属性的值
手动装配我们通常在配置文件中进行实现,以下代码就是手动装配:
②.在autowire配置为byName的情况下,spring容器会自动查找bean中id与自身属性的name一致的相匹配,未找到时抛出空指针异常。
      需要注意的是,set方法必须为public,否则报NullpointException。
③.在autowire配置为byType的情况下,spring容器会自动查找bean类型中自身属性类型一致的相匹配,未找到时抛出空指针异常。
      需要注意的是,set方法必须为public,否则报NullpointException。
       类型自动装配的意思是如果一个bean的数据类型与其他的bean属性的数据类型相同,将会自动兼容装配它。当然要求只能配置一个某   一 个类型的bean.如果配置成这样,那么是会出错的。


④.通过构造方法中的参数类型与bean中类型与自身参数类型去匹配然后自动装配。如找到多个会报NoUniqueBeanDefinitionException
所以必须要有构造函数,否则因为找不到而报空指针异常。


⑤.不常用,感兴趣的可以自己去了解下。

你可能感兴趣的:(Spring)