BATJ面试必会之 Spring 篇(二)

1、Spring3种依赖注入的方式:构造器注入、set注入和注解注入

1.构造器注入和对应的spring的xml文件:
在这里插入图片描述
解释: 其中index属性表示注入的bean在构造方法中的参数顺序。

2.set注入和对应的spring的xml配置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解释:下面的红问号处应该是com.howtodoinjava包在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9、怎样用注解的方式配置Spring?
Spring在2.5版本以后开始支持用注解的方式来配置依赖注入。可以用注解的方式来替代XML方式的bean描述,可以将bean描述转移到组件类的内部,只需要在相关类上、方法上或者字段声明上使用注解即可。注解注入将会被容器在XML注入之前被处理,所以后者会覆盖掉前者对于同一个属性的处理结果。

注解装配在Spring中是默认关闭的。所以需要在Spring文件中配置一下才能使用基于注解的装配模式。如果你想要在你的应用程序中使用关于注解的方法的话,请参考如下的配置。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
list, set, map和props元素分别用来设置类型为List,Set,Map和Propertis的属性值。分别用来为bean传入集合值。
对应的spring的配置文件举例如下:
小疑问:Map和props的区别在哪里?感觉两者都是键值对
笔者理解:用这个标签 可以使用 properties的配置文件导入参数
用#{}导入properties文件的参数值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16、请解释Spring Bean的自动装配?

先看一下下面的bean标签里面还有autowire标签,这个标签有5个可选值:
byName,byType,还有3个属性如下
no属性:这是autowire采用的默认值,它采用自动装配。

constructor属性:通过构造方法的参数类型自动装配。

autodetect属性:首先会使用constructor方式来自动装配,然后使用byType方式。
在这里插入图片描述
在这里插入图片描述
set,get方法我就不完全截图了
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
小疑问: 上图中的怎么可能bean内部既没有响应的构造器又没有无参构造器?按道理来说,没有有参构造器的话就会默认生成无参构造器

答: 例如如果有参构造器是A(INT A),那么使用A(FLOAT A)就找不到了,这个时候也没有A(),因为已经有了有参构造器,所以不会有默认无参构造器产生了

在这里插入图片描述

19、请举例解释@Required注解?

答: 该@Required注解适用于bean属性setter方法,并表示受影响的bean属性必须在XML配置文件在配置时进行填充。否则,容器会抛出一个BeanInitializationException异常。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后通过applicationContext接口的publishEvent()方法来发布自定义事件。

CustomApplicationEvent customEvent= new  CustomApplicationEvent(applicationContext,"Test message");
applicationContext.publishEvent(customEvent);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40241957/article/details/88676136