Java教程

Spring中基于XML的自动装配(自动赋值),Java开发工程师面试题总结

本文主要是介绍Spring中基于XML的自动装配(自动赋值),Java开发工程师面试题总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
            ", 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面试题解析+核心总结学习笔记+最新讲解视频】

MyBatis答案解析
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**
[外链图片转存中…(img-MEqQaNo3-1631074994944)]

[外链图片转存中…(img-l5MIcXWi-1631074994946)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

这篇关于Spring中基于XML的自动装配(自动赋值),Java开发工程师面试题总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!