《Spring in Action》学习笔记:Bean装配与初始化细节
需积分: 9 160 浏览量
更新于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 上传
731 浏览量
2392 浏览量
1487 浏览量
3064 浏览量
Yanbin_Q
- 粉丝: 466
- 资源: 33
最新资源
- Fizmez Web Server-开源
- jdk-8u271-linux-x64.zip
- c代码-这是一个输出0-50z之间所有能被3整除的的程序。
- movie-inc:影片制作数据库中的挑战奖的制作,预告片制作和制作,以及在影片库中编写的API
- matlab归零码功率谱源码-Genesis-1.3-Version4:随时间变化的3D代码可模拟自由电子激光器的放大过程
- acnh-critter-calendar:生成可以在岛上捕获的生物的列表
- video-layout2.zip
- Filter IE History-开源
- BooksStoreExcercise
- mysql代码-单表查询,多表查询
- 模拟电路-答案.zip-综合文档
- SD_HTMLRegPage
- mysql5.7安装软件及教程含主从配置.zip
- Fast Login Script-开源
- ShaggyShooters
- rock_paper_scissors:石头剪刀布游戏