一、BeanPostProcessors接口
1、用于对Bean的功能进行扩展,对Bean进行修改。
2、在Bean初始化操作之前和之后各调用一次。
二、BeanFactoryPostProcessors接口
1、用于在Bean实例化前,对配置信息进行修改。
三、后处理Bean的使用
1、先实现接口和方法。
2、在配置文件里注册Bean。
3、Spring会在运行时自动发现有后处理并的实现,并在对应时机调用后处理Bean。
四、特殊的后处理Bean实现
1、CustomEditorConfigurer属性编辑器。
a、编写类继承PropertyEditorSupport,重写setAsText方法,方法最后要调用setValue方法。
b、在配置文件中声明CustomEditorConfigurer类,将自定义的属性编辑器传入customEditors。
import java.beans.PropertyEditorSupport;
public class AddressEditor extends PropertyEditorSupport {
public void setAsText(String text) throws IllegalArgumentException {
String[] strs = text.split("-");
Address address = new Address();
address.setCity(strs[0]);
address.setStreet(strs[1]);
address.setRoomNum(strs[2]);
setValue(address);
}
}
<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="ioc.Address">
<bean class="ioc.AddressEditor" />
</entry>
</map>
</property>
</bean>
ioc.Address为要使用属性编辑器的类,ioc.AddressEditor为使用的属性编辑器
2、PropertyPlaceholderConfigurer读取外部配置文件。
a、写属性文件
b、在Spring配置文件中声明PropertyPlaceholderConfigurer,将属性文件路径传入location属性。
c、使用时,格式类似EL表达式${xxx}。
<bean id="p" class="ioc.Person">
<property name="addr">
<value>${address.string}</value>
</property>
</bean>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="ioc/address.properties" />
</bean>
ioc/address.properties是属性文件所在的位置
分享到:
相关推荐
Spring 笔记 Spring 是 Java 企业版(Java EE)应用程序的框架,提供了结构化的配置文件,实现了控制反转(IoC)和面向切面编程(AOP),支持表现层、业务逻辑层和持久层。Spring 的核心是 IoC 和 AOP,能够与主流...
2. **`@Autowired`注入**:当Bean被自动扫描后,Spring可以使用`@Autowired`注解自动装配依赖。这个注解告诉Spring,应该找到类型匹配的Bean来注入当前Bean的属性、构造器参数或方法。 3. **`@Configuration`与`@...
以下将详细介绍Spring学习笔记中的主要知识点。 **面向抽象编程** 面向抽象编程是一种设计原则,强调在代码中使用接口或抽象类,而不是具体实现类。这使得系统更具有灵活性,易于扩展和维护。在Spring框架中,我们...
本笔记将深入探讨Spring的核心概念和关键特性。 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一是依赖注入,它允许开发者在运行时将对象的依赖关系动态地注入到它们之间,而不是在代码中硬...
### Spring学习笔记知识点详解 #### 一、Spring框架概述 **Spring** 是一个开源的、分层的企业级应用开发框架,旨在简化Java EE应用程序的开发。它的主要目标是提高开发效率,减少耦合度,并提供一种更为简洁的...
【Spring 学习笔记四】 在本篇Spring学习笔记中,我们将深入探讨Spring框架的核心特性,包括依赖注入(Dependency Injection,DI)、AOP(面向切面编程)以及Spring的源码解析,同时也会介绍一些实用的开发工具。...
本笔记旨在深入解析Spring的高级源码,帮助程序员从应用层面过渡到源码级的理解。 Spring的核心组件包括Bean容器、AOP代理、数据访问/集成、MVC、Web服务等。首先,我们来探讨Bean容器,它是Spring的基础,负责管理...
- **BeanFactory**:它是Spring容器的基本接口,负责实例化和管理Bean。XmlBeanFactory是最常见的实现,通过XML配置文件来定义Bean及其依赖关系。 - **ApplicationContext**:是BeanFactory的子接口,增加了更多功能...
**Spring3笔记** Spring是企业级应用的全面解决方案,包括依赖注入(DI)、面向切面编程(AOP)、事务管理等。以下是关键点: 1. **依赖注入(Dependency Injection, DI)**: 通过容器管理组件之间的依赖关系,...
### Spring Boot 学习笔记知识点总结 #### 一、Spring发展史 - **Spring1.x时代**:在Spring1.x的时代,主要通过XML文件来配置Bean。随着项目的规模扩大,XML配置文件的数量也随之增加,这导致开发人员需要频繁地...
《Spring技术内幕 学习笔记》是一份深入探讨Spring框架核心机制的学习资料,结合作者zzc1684在iteye博客上的博文,我们可以从中学习到Spring框架的多个重要知识点。Spring作为Java企业级应用开发的基石,其设计思想...
Spring全家桶中常见的注解包括@Controller、@RestController、@Service、@Repository、@Component、@Configuration、@Resource、@Bean、@Value、@PropertySource、@ResponseBody、@RequestMapping、@SpringBoot...
对于`@Autowired`的处理,Spring在Bean实例化后会执行一个称为“依赖解析”的过程。这个过程会查找所有待注入的属性,并尝试匹配BeanDefinition中的依赖定义。 在具体实现中,Spring的`DefaultListableBeanFactory`...
这个类是Spring的一个Bean后处理器,它会在Bean实例化之后,查找并处理`@Value`注解,将注入的值设置到相应的字段或方法上。在处理过程中,Spring会使用`ExpressionParser`解析表达式,如果表达式包含SpEL(Spring ...
而在 Spring 中,我们可以声明一个 `UserDao` 的 Bean,并通过 IoC 容器自动创建和管理其实例,降低了耦合度,便于测试和维护。 2. **面向切面编程(AOP)** AOP 是一种编程范式,它允许在运行时动态插入代码来...
Spring框架是Java开发...总之,Spring框架提供了丰富的功能和灵活性,从简单的Bean管理到复杂的AOP和事务处理,都为开发者带来了极大的便利。通过学习和理解这些基本概念,小白也能逐步成长为Spring框架的熟练使用者。
通过定义init-method和destroy-method属性,可以指定在Bean创建后和销毁前执行的方法。 2.6 案例:整合测试 在实际项目中,我们会编写测试类,模拟应用环境,利用@Autowired注解自动注入需要的Bean,并调用相关方法...
《Spring学习笔记之bean生命周期》 在Spring框架中,Bean是核心组件,它们构成了应用程序的主要结构。理解Spring Bean的生命周期对于有效地管理和优化Spring应用程序至关重要。本文将深入探讨Spring Bean的生命周期...