- 1、本文档共64页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《《J2EE_Spring第5讲_Spring的AOP》.ppt
Java Web 开发教程 Hibernate第5讲:Spring的AOP IBM Learning Development 目标 两种后处理器 Spring 使用AspectJ实现AOP 基于XML配置文件的管理方式 Spring的事务 5.1 两种后处理器 Spring 提供了很好的扩展性,除了可以与各种第三方框架良好整合以外,其IOC容器也允许于开发者扩展。 Bean后处理器: 容器后处理器: 1.Bean后处理器 Bean后处理器是一种特殊的Bean,它主要为其它Bean进行后处理,例如容器中Bean的代理。它会在Bean实例创建成功后,对Bean进行进一步的加强处理。 Bean后处理器必须实现BeanPostProcessor接口,其中包括方法: Object postProcessorBeforeInitialization(Object,String) Object postProcessorAfterInitialization(Object,String) 两个方法分别在目标Bean的初始化之前和之后分别进行回调。 上述的方法的返回值是Bean对象。 5.1 两种后处理器 1.Bean后处理器 实现BeanPostProcessor接口类: public class MyBeanPostProcessor implements BeanPostProcessor { public Object postProcessAfterInitialization(Object bean, String name) throws BeansException { System.out.println(在+name+初始化之后!); return bean; } public Object postProcessBeforeInitialization(Object bean, String name) throws BeansException { System.out.println(在+name+初始化之前!); return bean; } } 5.1 两种后处理器 1.Bean后处理器 容器配置: beans …… bean id=chinese class=com.bean.Chinese property name=axe bean id=steel class=com.bean.SteelAxe/ /property property name=pname value=夸父/ /bean bean id=Axe class=com.bean.StoneAxe / bean class=com.bean.MyBeanPostProcessor / /beans 说明: MyBeanPostProcessor不需要定义id,Spring容器会在加载每个Bean的时候自动加载MyBeanPostProcessor。 5.1 两种后处理器 1.Bean后处理器 几种嵌入操作的比较: 配置: bean id=Axe class=com.bean.StoneAxe init-method=open/ bean class=com.bean.MyBeanPostProcessor / Bean实体类: public class StoneAxe implements Axe,InitializingBean { public StoneAxe(){ System.out.println(构造StoneAxe); } public void open(){ System.out.println(init-method的实现!); } public void afterPropertiesSet() throws Exception { System.out.println(Bean实现了InitializingBean接口!); } } 5.1 两种后处理器 1.Bean后处理器 前面的例子我们可以看到,ApplicationContext在创建容器的时候,是可以自动将BeanPostProcessor嵌入到Bean的初始化前后。 如果使用BeanFactory创建容器,则需要首先手动注册Bean后处理器(此时后处理器就需要命名id)。 public String test1() throws Exception{ ClassPathResource cp = new ClassPathResource(bean.xml); XmlBeanFactory ctx = new XmlBeanFactory
文档评论(0)