", list=" + list + '}'; }
xml配置文件:
<property name="name"> <value>时间简史</value> </property> <property name="money" value="50"/>
<!--为obj对象里面的自定义类型的属性赋值--> <!--property: 手动赋值-->
<property name="book" ref="book"/>
测试类:
public class main {
public static void main(String[] args) { ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("factory.xml"); Obj bean = app.getBean(Obj.class); System.out.println(bean); }
}
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=20210716114806791.png) * * * []( )自动装配(自动赋值) ========================================================================= []( )autowire的默认属性是default,default等价于no -------------------------------------------------------------------------------------------------
//这里还可以写autowire=“no”
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=20210716115200960.png) * * * []( )按照某种规则自动装配 ------------------------------------------------------------------------- ### []( )autowire=“byName” > 按属性名称自动装配。 Spring寻找与需要自动装配的属性同名的bean。例如,如果一个bean定义被设置为按名称自动装配,并且包含一个master属性(即,它具有setMaster(…)方法),那么Spring将查找一个名为master的bean定义并使用它来设置该属性。 **以Obj里面setBook成员方法的属性名作为ID,即book,去容器中找到这个组件,给他赋值**
<property name="name"> <value>时间简史</value> </property> <property name="money" value="50"/>
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=20210716115600394.png) * * * ### []( )autowire=“byType” > 如果容器中恰好存在一个属性类型的bean,则使该属性自动装配。如果存在多个,则将引发致命异常,这表明您可能无法对该bean使用byType自动装配。如果没有匹配的bean,则什么都不会发生(未设置该属性)。 **以属性的类型,即Book.class,作为作为查找依据,去容器中找到这个组件**
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=20210716115905997.png) 如果容器中有多个相同类型的组件,报错。 如果没找到,装配null * * * ### []( )autowire=“constructor” > 与byType类似,但适用于构造函数参数。如果容器中不存在构造函数参数类型的一个bean,则将引发致命错误。 第一步: 先按照有参构造器参数的类型进行装配,如果我们在为Obj的book属性通过有参构造进行赋值时,容器中没有Book相关组件,那么属性赋值为null
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=20210716120545829.png) 第二步: 如果按照类型找到多个,那么会以参数名作为ID继续匹配,找不到就为Null * * * ### []( )集合自动装配----集合里面存放的类型是自定义类型 容器可以把容器中所有Book属性都放到对应的List集合中 Obj类:
public class Obj {
private List<Book> list; public void setList(List<Book> list) { this.list = list; } @Override public String toString() { return "Obj{" +"list=" + list + '}'; }
}
xml配置文件:
<property name="name">
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**
[外链图片转存中…(img-MEqQaNo3-1631074994944)]
[外链图片转存中…(img-l5MIcXWi-1631074994946)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!