Spring新手学习笔记(二)后处理器与AOP 1048693.shtml

Spring新手学习笔记(二)后处理器与AOP_Java_第七城市

1.后处理器


后处理器是对IOC容器功能的扩展。按我的理解,扩展的原理是在某动作结束后再次调用指定的方法进行扩展处理。有点类似于AOP。


后处理器分两种:Bean后处理器容器后处理器

1.1 Bean后处理器


Bean后处理器会在Bean实例化结束后(注意,该实例化应该是指Bean类的实例化,还没有进行Spring中的注入等操作,并不是Spring最终返回的Bean),对其进行近一步的增强处理,例如返回一个Bean的代理类。


Bean后处理器需要实现BeanPostProcessor接口,该接口包含的postProcessBeforeInitializationpostProcessAfterInitialization分别在Bean初始化之前和之后回调。如上图,增强处理与init-methodInitializingBeandestory-methodDisposableBean的执行顺序,增强处理永远在最外围的


下面给出Bean后处理器的Demo:

首先实现创建一个实现 BeanPostProcessor的后处理器类
/**
* Bean后处理器Demo类,该处理类会对容器里面的所有Bean进行后处理
* @author wangsz
*/
public class BeanPostProc implements BeanPostProcessor{
/**
* 在Bean初始化后,对容器中的bean进行后处理,返回处理后的bean
*/
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("bean后处理器在["+beanName+"]初始化后对其进行增强处理");
if(bean instanceof Person){
((Person) bean).setName("akq");
}
//该bean可以与旧bean截然不同,如返回一个该Bean的代理类
return bean;
}
/**
* 在Bean初始化前,对容器中的bean进行后处理,返回处理后的bean
*/
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("bean后处理器在["+beanName+"]初始化前对其进行增强处理");
//该bean可以与旧bean截然不同
return bean;
}
}
然后在Spring配置文件中加上这个Bean。这样,该后处理类就会对容器里面的所有Bean进行后处理。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值