第五章 Bean的装配

Q1 bean的id 和 name有何异同?
答:同:
1 都是作为bean的名称
2 都可以指定多个名字
异:
1 id有命名规范,而name可以用特殊字符
2 配置文件不允许出现两个相同id的bean,但是可以出现相同name的bean

Q2 Spring 支持哪些依赖注入的方式?
1 属性注入
(a 依赖注入时,Spring检查是否有对应的setter方法)
(b 命名要求:变量的前两个字母要么全部大写,要么全部小写)
2 构造函数注入
(a 按类型匹配入参 )
(b 按索引匹配入参 )
(c 通过自身类型反射匹配入参)
(3 接口注入:不推荐使用)
(4 工厂方法注入:不推荐使用)
(5 字段注入)

Q4 比较不同的依赖注入方式
构造函数注入优点:
1 保证一些重要属性在bean实例化时就设置好
2 不需要setter方法,减少类的方法个数
3 封装性更好
构造函数注入缺点:
1 如果属性多,则可读性差
2 有些属性可选的情况下,依然要设置null值
3 循环依赖问题

Q5 列举spring的自动装配类型
注:xml配置方式很少启用自动装配功能(default-autowire=no);而基于注解的配置方式默认采用byType。
1 byName 根据名称
2 byType 根据类型
3 constructor 如果在构造函数中找到某类型的入参,则将这个bean装配
4 autodetect 根据bean的自省机制选择byType或者constructor

Q6 谈谈bean中可注入哪些参数。
1 字面值:可用字符串表示的值
处理特殊字符的方法:
(1)<![CDATA[]]>
(2)用转义序列表示
2 引用容器中的其他bean


3 内部bean
范围被默认为prototype
4 null值

5 级联属性
6集合类型属性

Q7 bean之间有哪些关系?
1 继承
2 依赖
3 引用

Q8 Spring bean之间的继承和java类中的继承有什么区别?
1、Spring 中的子bean 和父bean 可以是不同类型,但在Java 中的,子类是对父类的加强,是一种特殊的父类。
2、Spring 中bean 的继承是实例之间的关系,主要表现为参数值的延续:而Java 中的继承是类与类之间的关系,主要表现为方法及属性的延续。
3、Spring 中子bean 不可作父bean 使用,不具备多态性:而Java 中的子类实例完全可当成父类实例使用。

Q9 bean有哪几种作用域?说明不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值