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);

在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java全栈研发大联盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值