spring 基于xml方式配置aop

目录

    • 什么是aop
    • 模拟aop
    • 配置

什么是aop

  1. 什么是aop
作用 在程序运行期间,在不修改源码的情况下对方法进行功能增强
优势 减少重复代码 提高开发效率 并且便于开发

2.aop关键概念

模拟aop

  1. 目标接口
package com.lovely.proxy.aop;public interface TargetInterface {public abstract void save();
}
  1. 切点类
package com.lovely.proxy.aop;/*** @author echo lovely* @date 2020/7/28 16:07*/
public class Target implements TargetInterface {public void save() {try {System.out.println(1 / 0);} catch (Exception e) {System.out.println(e);}System.out.println("save running about aop...");}
}
  1. 切面类
package com.lovely.proxy.aop;import org.aspectj.lang.ProceedingJoinPoint;/*** 切面类 里面写增强方法 advice 通知方法* @author echo lovely* @date 2020/7/28 16:05*/
public class MyAspect {public void before() {System.out.println("前置增强...");}public void afterReturning() {System.out.println("后置增强...");}public Object around(ProceedingJoinPoint process) {System.out.println("环绕通知前...");Object obj = null;try {obj = process.proceed();} catch (Throwable throwable) {throwable.printStackTrace();}System.out.println("环绕通知后...");return obj;}public void afterThrowing() {System.out.println("异常拉...");}public void after() {System.out.println("最终通知...");}}

配置

   <!-- 目标对象 --><bean id="target" class="com.lovely.proxy.aop.Target"></bean><!-- 切面对象 --><bean id="myAspect" class="com.lovely.proxy.aop.MyAspect"></bean><!-- aop配置 --><!--  配置织入 被增强的方法(切点) 要进行那些增强(前置,后置)  --><aop:config><!-- 声明切面--><aop:aspect ref="myAspect"><!-- 切点表达式的抽取 --><aop:pointcut id="myPointcut" expression="execution(* com.lovely.proxy.aop.*.*(..))"/><!-- 切面:通知 + 切点 --><!--<aop:before method="before" pointcut="execution(public void com.lovely.proxy.aop.Target.save())"/>--><!-- 前后置通知 --><!--<aop:before method="before" pointcut="execution(void com.lovely.proxy.aop.*.*(..))"/><aop:after-returning method="afterReturning" pointcut="execution(void com.lovely.proxy.aop.*.*(..))"/>--><!-- 环绕增强 --><!--<aop:around method="around" pointcut="execution(* com.lovely.proxy.aop.*.*(..))"/>--><!-- 抛出异常通知 --><!--<aop:after-throwing method="afterThrowing" pointcut="execution(void com.lovely.proxy.aop.*.*(..))"/>--><!-- 最终通知 --><!--<aop:after method="after" pointcut="execution(void com.lovely.proxy.aop.*.*(..))"/>--><!-- 引用切点表达式 --><aop:around method="around" pointcut-ref="myPointcut"/></aop:aspect></aop:config>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word2vec相关资料

blogs&#xff1a; http://www.douban.com/note/323504583/ and http://www.zhihu.com/question/21661274 references: http://arxiv.org/pdf/1310.4546v1.pdf and http://www.fit.vutbr.cz/research/groups/speech/servite/2010/rnnlm_mikolov.pdf转载于:https://www.cnblogs…

信息抽取--关键词提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 什么是关键词&#xff08;是什么&#xff09; 大略的讲就是文章中重要的单词&#xff0c;而不限于词语的新鲜程度。 什么样的单词是重要的单词&#xff0c;恐怕这是个…

h5离线缓存

html5离线缓存1. 简介1.1 什么是离线缓存1.2 优点1.3 针对对象2. 实现方式2.1 使用3. window.applicationCache对象相关api3.1 属性3.2 事件3.3 方法1. 简介 1.1 什么是离线缓存 HTML5中引入了应用程序缓存&#xff0c;意味着Web应用可以进行数据缓存&#xff0c;并可以在没有…

3389爆破DUBrute_2.1

3389专业爆破 DUBrute_2.1.zip http://pan.baidu.com/s/1pJE0t5L转载于:https://www.cnblogs.com/lieyan/p/3859696.html

信息抽取--短语提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 短语提取 在信息抽取领域&#xff0c;另一项重要的任务就是提取中文短语&#xff0c;也即固定多字词表达串的识别。短语提取经常用于搜索引擎的自动推荐&#xff0c;文…

ACM1598并查集方法

find the most comfortable road Problem DescriptionXX星有许多城市&#xff0c;城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构&#xff09;进行交流&#xff0c;每条SARS都对行驶在上面的Flycar限制了固定的Speed&#xff0c;同时XX星人对…

h5 server send event(sse)

1. sse概述 概念&#xff1a; H5支持使用JS脚本不间断的访问服务器(推送)轮询: 页面使用js的定时器&#xff0c;定时发送请求查询最新数据 使用js将最新数据加载至页面 每发送一次数据&#xff0c;需要建立新的连接 时间间隔由客户端决定 优点&#xff1a;不需要刷新页面、实…

信息抽取--关键句提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 关键句提取 在一些场合&#xff0c;关键词或关键短语依然显得碎片化&#xff0c;不足以表达完整的主题。这时通常提取中心句子作为文章的简短摘要。 2 问题 关键句提…

Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null

最近发现系统中出现了很多 IOException: Connection reset by peer 与 ClosedChannelException: null 深入看了看代码, 做了些测试, 发现 Connection reset 会在客户端不知道 channel 被关闭的情况下, 触发了 eventloop 的 unsafe.read() 操作抛出 而 ClosedChannelException 一…

注解方式实现aop

aop注解实现spring配置文件目标接口&#xff0c;目标实现类&#xff0c;切面类 注解写法使用spring-test测试spring配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmln…

文本聚类

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 聚类(cluster analysis )指的是将给定对象的集合划分为不同子集的过程&#xff0c;目标是使得每个子集内部的元素尽量相似&#xff0c;不同子集间的元素尽量不相似。 …

sublime text3下BracketHighlighter的配置方法

st3的配置方法和st2是有区别的&#xff0c;所以网上搜索到的方法大多不能用&#xff0c;我google之后总结了一下。 一、 1、在st3中按preferences-->package settings-->Bracket highlighter-->Bracket settings-Default打开配置文件。 2、将配置文件信息全选复制一份…

利用spring注解创建bean

spring注解spring 原始注解1.1 Component注解1.2 Controller,Service,Repository同上1.3 注解方式依赖注入spring 新注解1. 用来解析配置类&#xff0c;利用配置类替代xml注解代替了xml的繁琐配置 spring 原始注解 1.1 Component注解 <!--spring 使用注解创建对象 compone…

文本分类--普通分类

1 基本概念 文本分类 文本分类&#xff08;text classification&#xff09;&#xff0c;指的是将一个文档归类到一个或多个类别的自然语言处理任务。文本分类的应用场景非常广泛&#xff0c;包括垃圾邮件过滤、自动打标等任何需要自动归档文本的场合。 文本分类在机器学习中属…

hdoj 2041 超级阶梯

代码&#xff1a; #include <stdio.h>int main(){int n;int i;int m;int count;int dp[50];while(scanf("%d",&n)!EOF){dp[1]1;dp[2]1;dp[3]2;while(n--){count0;scanf("%d",&m);for(i4; i<m; i){dp[i]dp[i-1]dp[i-2];}printf("%d\n…

文本分类--情感分析

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 情感分析 对于情感分析而言&#xff0c;只需要准备标注了正负情感的大量文档&#xff0c;就能将其视作普通的文本分类任务来解决。此外&#xff0c;一些带有评分的电影…