spring的自动装配功能的定义:无须在Spring配置文件中描述javaBean之间的依赖关系(如配置
如果没有采用自动装配的话,手动装配我们通常在配置文件中进行实现:一下代码就是手动装配:
通过
在Spring框架,可以用 auto-wiring 功能会自动装配Bean。要启用它,只需要在
在Spring中,支持 5 自动装配模式。
第一种自动装配【根据属性名称自动装配】
package com.hebeu.model; public class Customer { private Address address; public Customer() { } public Customer(int id, Address address) { super(); this.address = address; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } }
package com.hebeu.model; public class Address { private String fulladdress; public Address(){ } public Address(String addr){ this.fulladdress = addr; } public String getFulladdress() { return fulladdress; } public void setFulladdress(String fulladdress) { this.fulladdress = fulladdress; } }
这样就将address注入到Customer中。这就是自动注入ByName.在Customer bean中公开了一个属性address,Spring容器会找到address bean,并且装配。这里必须要注意,Customer中要被注入的bean的set方法要求必须是public的,否则会报空指针异常。还有配置的bean的id必须和Customer中声明的变量名相同。
第二种自动装配【根据数据类型自动装配】
声明的俩个bean同样为Customer以及Address,将applicationContext.xml转换为这样的就是实现根据数据类型进行自动装配。
autowire="byType">
类型自动装配的意思是如果一个bean的数据类型与其他的bean属性的数据类型相同,将会自动兼容装配它。当然要求只能配置一个某一个类型的bean.如果配置成这样,那么是会出错的。
第三种自动装配【根据构造方法自动装配】
案例同上,将applicationContext.xml转换为如下,就实现了按照构造方法自动装配:
它实际上是构造函数的参数类型自动装配。这意味着如果一个bean的数据类型与其他bean的构造器参数的数据类型是相同的,那么就自动装配。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。