【面试】【Spring常见问题总结】【02】

11、初始化和销毁Bean

为Bean定义初始化和销毁操作,只需要使用init-method 和destroy-method参数来配置<bean>元素。init-method属性指定了在初始化Bean时要使用的方法。类似地,destroy-method属性指定了Bean从容器移除之前要调用的方法。

12、Spring集合配置元素

【面试】【Spring常见问题总结】【02】_第1张图片

13、装配Map集合

<map>中的<entry>元素由一个键和一个值组成,键和值可以是简单类型,也可以是其他Bean的引用。这些属性将帮助我们指定<entry>的键和值。


14、一些牢记要点:

<property>元素用于把值或Bean 引用注入到Bean的属性中,

<props> 元素用于定义-个java.util.Properties 类型的集合值,

<prop>元素用于定义<props>集合的一个成员。

15、SpEL表达式的特性

使用Bean的ID来引用Bean

调用方法和访问对象的属性

对值进行算术、关系和逻辑运算

正则表达式匹配

集合操作

16、在SpEL值上可执行的操作

【面试】【Spring常见问题总结】【02】_第2张图片

17、Spring减少XML的配置数量

自动装配(autowiring)有助于减少甚至消除<property>元素和<constructor-arg>元素,让Spring自动识别如何装配Bean的依赖关系。

自动检测(autudiscovery)比自动装配更进一步,让Spring能够自动识哪些类需要被配置成Spring Bean,从而减少对Bean元素的使用。

18、4 种类型的自动装配。

byName——把与Bean的属性具有相同名字(或者ID)的其它Bean自动装配到对应属性中。如果没有跟属性的名字相匹配的Bean,则该属性不进行装配。

byType——把与Bean的属性具有相同类型的其它Bean自动装配到对应属性中。如果没有跟属性的类型相匹配的Bean,则该属性不进行装配。

constructor——把与Bean构造器参数具有相同类型的其他Bean自动装配到Bean构造器的对应参数中。

autodetect——首先尝试使用constructor进行自动装配,如果失败,再尝试使用byType进行自动装配。

19、4种类型自动装配的约束和缺点

byName——约定:为属性自动装配ID与该属性的名字相同的Bean。缺点:需要假设想Bean的名字与其他Bean的属性的名字一样。

byType——缺点:如果Spring寻找到多个Bean,并且类型都匹配,Spring会抛出异常。解决方法:可以为自动装配标识一个首选Bean 或者可以取消某个Bean自动装配的候选资格。

constructor——发现多个Bean匹配某个构造器的参数时,Spring不会尝试猜哪一个Bean更适合自动装配。此外如果一个类有多个构造器,它们都满足自动装配条件时,Spring也不会尝试哪一个构造器更适合使用。

20、使用Spring注解装配

<context:annotation-config>元素告诉Spring使用基于注解的自动装配。Spring支待几种不同的用于自动装配的注解

Spring自带的@Autowired注解。(@Autowired(required=false)说明不一定要装配,null值也可以接受)@Autowired可以装配构造器,方法和属性。

JSR-330的@Inject注解。可以装配构造器,方法和属性。@Inject注解所标注的依赖关系必须存在,如果不存在就会抛出异常。

JSR-250的@Resource注解。

你可能感兴趣的:(java,spring,面试)