基于xml
通过bean 创建对象
用property 或者constructor-arg 进行属性装配
property调用的set方法 constructor-arg调用的构造方法(Person提供setter getter方法,或者构造方法)
bean类要提供setter getter 方法 或者构造器
个人分析:property调用的set方法 是根据属性名字去找对应的值 如果不提供set方法 ,即没有给属性设置值,但是标签里面有 所以会报错
基于xml
通过bean 创建对象
用autowire属性装配
bean类要提供setter getter 方法 或者构造器
如果不提供引用类型为null
个人分析:autowire也是根据属性名字或者类型去找对应的值 如果不提供set方法 ,即没有给属性设置值,这时因为是自动装配 ,也就不会出现类似于这样的强制赋值功能,最终结果是没有找到属性 ,所以也就不会去IOC容器找对应的bean,也就不会去赋值
基于xml的都是针对set后面的属性值 和成员变量的名字没有关系
基于注解
@component 创建对象
@autowired属性装配
bean类不需要提供setter getter 方法 或者构造器
个人分析:@autowired 针对成员变量 会根据成员变量的值去ioc容器中去匹配 不是set后面的属性值