什么是自动装配?
spring IOC容器可以自动装配(autowire)相互协作bean之间的关联关系。因此,如果可能的话,可以自 动让Spring通过检查BeanFactory中的内容,来替我们指定bean的协作者(其他被依赖的bean)。由于 autowire可以针对单个bean进行设置,因此可以让有些bean使用autowire,有些bean不采用。autowire的 方便之处在减少或者消除属性或构造器参数的设置,这样可以给我们的配置文件减减肥 在配置文件中给域属性注入值时除了使用
(外面的bean节点我没有写,在前面已经有写过,在这里简单提一下)
还有一种方法就是域属性自动装配设置bean节点中的autowire属性来给他注入值
下面用个例子来说一下
首先是准备工作
先创建两个类Student和Car,类中的内容如下
package demo06;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import javax.annotation.Resource;/** * Created by mycom on 2018/3/5. */public class Student { private String name; private Integer age; private Car car; public Student() { } public Student(String name, Integer age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Car getCar() { return car; } public void setCar(Car car) { this.car = car; }}
package demo06;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;/** * Created by mycom on 2018/3/5. */public class Car { private String color; private String brand; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getColor() { return color; } public void setColor(String color) { this.color = color; }}
在配置文件中进行配置
在这里说明一下:
autowire的值有两个 byName和byType
byName就是根据Spring管理的Car的id值来进行属性注入
byType 就是根据Spring管理的Car的类型注入,所以这种注入方式有两种