《Spring in Action》学习笔记:Bean装配与初始化细节
需积分: 9 7 浏览量
更新于2024-07-31
收藏 466KB PDF 举报
"《Spring in Action》学习笔记"
在深入探讨Spring框架的细节之前,我们先了解一下Spring的核心概念。Spring是一个轻量级的Java企业级应用框架,它提供了丰富的功能,包括依赖注入(DI)、面向切面编程(AOP)、事务管理等。《Spring in Action》这本书是学习Spring的宝贵资料,书中详细介绍了Spring的各种特性。
首先,我们来看第二章关于装配Bean的部分:
1. `<ref>`标签用于引用其他Bean,`bean`属性是Bean的ID,`local`属性适用于同一作用域内的引用,而`parent`属性则用于表示当前Bean是另一个Bean的父Bean,继承其属性和配置。
2. `<list>`和`<set>`元素都可用于集合类型的属性注入,它们可以互换,但`<list>`通常保持顺序,而`<set>`不保证顺序。`<value>`标签则用于添加集合元素。
3. `<map>`标签用于创建Map对象,其key必须是字符串,虽然这在大多数情况下足够使用,但如果需要非字符串key,可能需要其他方法来实现。
4. 装配Map属性时,需要使用`<entry key="key1"><value>foo</value></entry>`结构,而`<props>`标签用于properties属性,如`<prop key="key1">foo</prop>`,因为properties的值总是字符串。
5. 设置属性为null时,可以使用`<property name="foo"><null/></property>`,注意这与字符串"null"不同。
6. 构造函数注入依赖时,如果构造函数有多个参数,可以通过`index`或`type`属性指定匹配的参数。`index`属性根据参数位置进行匹配,而`type`则基于参数类型。
7. Spring的自动装配有四种模式:byName、byType、constructor和autodetect。`default-autowire`属性可以在`<beans>`标签中设置全局默认值。尽管自动装配提供了便利,但过度依赖可能导致代码可读性和可控性下降,因此应谨慎使用。
8. `BeanPostProcessor`接口提供两种方法:`postProcessBeforeInitialization`和`postProcessAfterInitialization`,分别在bean初始化前和后执行。这些方法需要注册到`BeanFactory`,Spring容器会自动调用。`ApplicationContextAwareProcessor`是Spring内部的一个处理器,它注册在`AbstractApplicationContext`上下文中。
9. `BeanFactoryPostProcessor`接口则在Bean工厂加载所有Bean定义后,但在实例化Bean之前运行。这个接口常用于对Bean定义进行后期处理,例如修改属性值。
以上只是《Spring in Action》中部分学习笔记的概述,实际上,书中还涵盖了更多内容,如AOP的实现、Spring MVC、数据访问集成、测试策略等。通过深入学习这本书,开发者能够掌握Spring框架的核心知识,从而更有效地构建和管理Java应用程序。
140 浏览量
2008-06-17 上传
2008-07-15 上传
2023-07-30 上传
2023-08-12 上传
2023-09-11 上传
2023-07-15 上传
2023-07-27 上传
2023-05-17 上传
![](https://profile-avatar.csdnimg.cn/e787b46fff3342568976eca71f41322f_kypfos.jpg!1)
Yanbin_Q
- 粉丝: 361
- 资源: 33
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解