- 浏览: 1042441 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
定义的接口
package com.aspectaop;
public interface IUserDao {
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#save()
*/
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#save(java.lang.String)
*/
public abstract void save(String name);
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#update()
*/
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#update()
*/
public abstract String update();
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#doThrow()
*/
public abstract void doThrow();
}
接口实现类,分别定义了传入的参数,返回有参数以及异常等方法
package com.aspectaop;
public class UserDaoImpl implements IUserDao {
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#save()
*/
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#save(java.lang.String)
*/
public void save(String name)
{
System.out.println("这是保存方法!");
}
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#update()
*/
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#update()
*/
public String update()
{
System.out.println("这是更新方法!");
return "这是更新方法返回的值!";
}
/* (non-Javadoc)
* @see com.aspectaop.IUserDao#doThrow()
*/
public void doThrow()
{
throw new RuntimeException("返回了例外!");
}
}
定义切面方法
package com.aspectaop;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class AspectBean {
@Pointcut("execution(* com.aspectaop.UserDaoImpl.*(..))" )
public void anyWay()
{}
@Before("anyWay() && args(name)")
//这里采取的是args(name)的方法,表示被代理的方法传入的参数,在doValidate中的name要和这个名字对应,
并且这里定义的是String表示只有方法中传入参数类型是STRING的,才会被拦截
public void doValidate(String name)
{
System.out.println("这是事前方法.."+"获得事前方法的参数:"+name);
}
@AfterReturning(pointcut="anyWay()",returning="result")
//这里用returning表示要返回方法的值,然后作为参数传递到doAfterReturning中,注意doAfterReturning中的result也要和returning="result"中的result对应
public void doAfterReturning(String result)
{
System.out.println("这是最终方法.."+"获得最终方法的参数:"+result);
}
@AfterThrowing(pointcut="anyWay()",throwing="e")
//该部分解释和返回值的一致
public void doAfterThrowing(Exception e)
{
System.out.println("例外通知:"+e);
}
@Around("anyWay()")
//环绕通知必须按照以下方法签名来写,除了doAround的这个方法名可以自己定义和pjp这个名字可以自己定义以外,然后执行pjp.proceed()方法才会被执行
public Object doAround(ProceedingJoinPoint pjp) throws Throwable{
System.out.println("执行前");
Object o = pjp.proceed();
System.out.println("执行后");
return o;
}
}
- aspectaop.rar (2 KB)
- 下载次数: 29
发表评论
-
spring整合memeched
2017-11-23 14:18 465XMemcached是一个基于Java nio的memcac ... -
Spring 4 MVC @RestController 注解实现REST Service
2017-11-07 10:56 927简短 & 快速介绍REST REST表示 Repr ... -
SSM框架-----------SpringMVC+Spring+Mybatis框架整合详细教程
2017-10-25 15:54 4941、基本概念 1.1、Spring Sp ... -
spring mvc 文件上传
2017-10-03 23:14 487直接上代码吧,大伙一看便知 这时:commonsmulti ... -
SpringMVC对静态资源进行缓存
2017-09-26 15:19 378在dispatcher-servlet.xml中配置: ... -
springmvc常用注解标签详解
2017-09-12 08:30 3251、@Controller 在SpringMVC ... -
Spring JdbcTemplate 与 事务管理 学习
2014-11-12 09:35 745Spring的JDBC框架能够承担资源管理和异常处理的工作, ... -
Spring中使用annotation注入
2014-11-12 08:42 638我们使用Spring 一般式在xml配置文件中进行注入.但是 ... -
spring集成数据库连接池
2014-11-07 14:30 770我项目中使用的是proxool数据库连接池, 首先在web ... -
spring+xifre 发布webservice服务
2011-12-28 10:01 1620利用xfire编写webservice的例子,内容如下1. x ... -
spring3.0事物配置
2011-11-02 16:47 1836第一种配置方法:基于XML的事务管理 这种方法不需要对原有的 ... -
spring 事物配置全文
2011-10-20 10:39 1003根据代理机制不同,有以下几种配置方式: 先定义 ... -
spring 2.0使用AOP实例(基于Annotation的配置方式)
2011-10-19 14:53 1172使用Java5注解配置及使用Spring AOPSpring2 ... -
spring 2.0使用AOP实例(基于XML的配置方式)
2011-10-19 14:44 1357设计系统的核心业务组件。基于针对接口编程的原则,一个好习惯是先 ... -
spring1.x使用AOP实例
2011-10-19 08:23 1305spring1.x使用AOP配置。 applicationC ... -
使用 Spring 注释学习笔记
2011-10-18 10:33 805概述 注释配置相对于 XML 配置具有很多的优势: 它可 ... -
spring 3.0配置实用例-applicationContext.xml 空白文档
2011-10-18 10:24 2302<?xml version="1.0" ... -
使用spring2.5注释驱动的IOC功能
2011-10-13 14:26 687概述 注释配置相对于 XML 配置具有很多的优势: 它可 ... -
利用Annotation来实现属性的注入
2011-05-06 21:36 1146在以前的SPRING中我们通常采用的方式是在XML文件来来实现 ... -
使用SPRING的IOC的好处
2011-03-01 00:06 1750IOC:控制反转,它是不 ...
相关推荐
spring的Aop中的前置通知,后置通知以及环绕通知简单代码
spring框架的aop前置、后置、环绕、异常通知以及自定义切入点实例
关于AOP注解前置通知、后置通知、返回通知、异常通知的注解注释及应用
1、编写切面类,包含权限审核方法和日志记录方法,这两个方法将来会织入到...5、编写案例,运用Spring AOP技术,要求包含前置通知、后置通知、环绕通知、返回通知、异常返回通知。请掌握这五种通知的特点,及应用场景
NULL 博文链接:https://z18022893621.iteye.com/blog/1956146
Spring spectJ AOP 前置通知 后置通知 返回通知 异常通知 环绕通知
一. 准备工作 二. Spring -Aop入门 三. Spring-Aop 前置通知、后置通知、环绕通知、异常通知实现 四. Spring-Aop 之Pointcut+advice+Advisor 实现 五.Spring-Aop 引入的介绍
一个基于配置文件的Spring AOP的实现。实现了前置通知,后置通知,以及拦截器的功能,配置中有详细的注释。
AOP程序 Spring框架 前置通知 后置通知 异常通知 环绕通知
sping AOP面向切面的编程,程序运行过程中动态加入所需代码等,对公共的问题进行集中处理,具体的实现有动态代理与静态代理,本文通过对AOP的代理机制,前置、后置、环绕、异常的通知进行了综合总结和运用!
Spring AOP支持不同类型的通知,如前置通知(Before)、后置通知(After)、返回后通知(After-returning)、抛出异常后通知(After-throwing)和环绕通知(Around)。这种机制使得开发者可以在运行时动态地应用这些...
1、spring切入点 2、spring前置织入,传入参数处理 3、spring后置织入,传入参数处理 4、环绕织入,参数及返回值处理 5、返回后织入,返回值处理 6、异常织入,异常处理 maven环境下,测试用例可直接运行
springboot配置AOP切面:前置通知、后置通知、环绕通知、返回通知、异常通知
Bean、通过 FactoryBean 配置 Bean、通过注解配置 Bean、泛型依赖注入、AOP 基础、前置通知、后置通知、返回通知、异常通知、环绕通知、切面的优先级、切点表达式、使用 XML 文件的方式配置 AOP、使用 JdbcTemplate ...
Spring中Aop的使用!~ 关于前置通知,后置通知,环绕通知,异常通知的使用!~ 简单的demo!~
spring的简化aop,前置通知,后置通知的简写
<aop:before method="before" pointcut-ref="pointCut"/> aop前置通知 <aop:after method="after" pointcut-ref="pointCut"/> aop后置通知, <aop:after-throwing method="exception" pointcut-ref="pointCut"/> aop...
1、@Aspect放在类头上,把...3.4、@AfterThrowing,后置【catch】通知,放在方法头上,使用throwing来引用抛出的异常。 3.5、@Around,环绕通知,放在方法头上,这个方法要决定真实的方法是否执行,而且必须有返回值。
Spring 4.0 AOP 面向切面测试程序,涉及通知类型包括前置通知\后置通知\返回通知\异常通知\环绕通知,项目采用Maven搭建!