property:手动赋值
自动赋值(自动装配)
自动装配:(仅限于对自定义类型的属性有效)
autowire="default/no":不自动装配;不自动为car属性赋值
autowire="byName":按照名字;
private Car car;
1)、以属性名(car)作为id去容器中找到这个组件,给他赋值;如果找不到就装配null;
car = ioc.getBean("car");
autowire="byType":
private Car car;
1)、以属性的类型作为查找依据去容器中找到这个组件;如果容器中有多个这葛类型的组件,报错;
NoUniqueBeanDefinitionException:
No qualifying bean of type [com.atguigu.bean.Car] is defined:
expected single matching bean but found 2: car01,car02
2)、没找到呢?装配null
car = ioc.getBean(Car.class);
autowire="constructor":
public Person(Car car)
按照构造器进行赋值;
1)、先按照有参构造器参数的类型进行装配(成功就赋值);没有就直接为组件装配null即可。
2)、如果按照类型找到了多个;参数的名作为id继续匹配;找到就装配;找不到就null;
3)、不会报错;
SpEL测试
[SpEL测试I](Spring Expression Language)Spring表达式语言
在SpEL中使用字面量、
引用其他bean、
引用其他bean的某个属性值、
【 调用非静态方法
调用静态方法、】
使用运算符;都支持