使用@AspectJ标签
-
在配置文件中添加<aop:aspectj-autoproxy/>注解
-
创建一个Java文件,使用@Aspect注解修饰该类
-
创建一个方法,使用@Before、@After、@Around等进行修饰,在注解中写上切入点的表达式
说明:上述Java文件创建好后,需要将其在Spring的容器中进行声明,可以在配置文件中定义<bean/>节点,也可以使用@Component组件进行修饰
示例:
-
importorg.aspectj.lang.ProceedingJoinPoint;
-
importorg.aspectj.lang.annotation.After;
-
importorg.aspectj.lang.annotation.AfterThrowing;
-
importorg.aspectj.lang.annotation.Around;
-
importorg.aspectj.lang.annotation.Aspect;
-
importorg.aspectj.lang.annotation.Before;
-
importorg.springframework.stereotype.Component;
-
-
-
-
-
-
@Component
-
@Aspect
-
publicclassAopLog{
-
-
-
@Before("execution(*com.zywang.services.impl.*.*(..))")
-
publicvoidbefore(){
-
System.out.println("before");
-
}
-
-
-
@After("execution(*com.zywang.services.impl.*.*(..))")
-
publicvoidafter(){
-
System.out.println("after");
-
}
-
-
-
@Around("execution(*com.zywang.services.impl.*.*(..))")
-
publicObjectaround(ProceedingJoinPointpoint)throwsThrowable{
-
System.out.println("beginaround");
-
Objectobject=point.proceed();
-
System.out.println("endaround");
-
returnobject;
-
}
-
-
-
@AfterThrowing(pointcut="execution(*com.zywang.services.impl.*.*(..))",throwing="ex")
-
publicvoidafterThrowing(Exceptionex){
-
System.out.println("afterThrowing");
-
System.out.println(ex);
-
}
-
}
上面这段代码中多次使用了重复的切入点,这种情况下,可以使用@Pointcut标注,来修改一个切入点方法(这个方法不需要参数和方法体),然后就可以在@Before等标注中引用该方法作为切入点,示例如下:
-
importorg.aspectj.lang.ProceedingJoinPoint;
-
importorg.aspectj.lang.annotation.Around;
-
importorg.aspectj.lang.annotation.Aspect;
-
importorg.aspectj.lang.annotation.Before;
-
importorg.aspectj.lang.annotation.Pointcut;
-
importorg.springframework.stereotype.Component;
-
-
-
-
-
-
@Component
-
@Aspect
-
publicclassAopLog{
-
-
@Pointcut("execution(*com.iflysse.school.services.impl.*.*(..))")
-
publicvoidpointcut(){}
-
-
-
@Before("pointcut()")
-
publicvoidbefore(){
-
System.out.println("before");
-
}
-
-
-
@Around("pointcut()")
-
publicObjectaround(ProceedingJoinPointpoint)throwsThrowable{
-
System.out.println("beginaround");
-
Objectobject=point.proceed();
-
System.out.println("endaround");
-
returnobject;
-
}
-
}
分享到:
相关推荐
Spring3.0MVC注解+SringJdbcDaoSupport案例,前端包括批量伤处,SpringAop声明式事务控制的配置等信息
两行为开启spring的注解配置 <aop:aspect id="aspect" ref="logIntercepter"> 引入具体的AOP操作类 <aop:pointcut expression="execution(* com.spring.service..*(..))" id="pointCut"/>声明一个切入点,注意...
SpringBoot 中的 Aop + 自定义注解 1. @AspectJ 1.1 `@AspectJ` 切面类 1.2 `@Pointcut` 创建切入点 1.3 通知 1.4 Spring AOP 和 AspectJ AOP 有什么区别? 2. 在 SpringBoot 中使用 Aop 功能 2.0 创建一个...
第4章:讲解如何在Spring配置文件中使用Spring 3.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的说明。 第5章:对Spring容器进行解构,从内部探究Spring容器的体系结构和运行流程。此外,我们...
在Spring3中配置数据源,包括DBCP,C3P0,Proxool,Bonecp主要的数据源,里面包含这些数据源的jar文件和依赖文件及配置文件。。 如Bonecp目前听说是最快的数据源,速度是传统的c3p0的25倍, bonecp.properties文件: ...
第4章:讲解如何在Spring配置文件中使用Spring 3.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的说明。 第5章:对Spring容器进行解构,从内部探究Spring容器的体系结构和运行流程。此外,我们...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans Spring-Context Spring-Context-Support Spring-Expression ...
-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <!-- apache.dbcp连接池的配置 --> ...
1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 工作原理 14 1.4 解决构造程序歧义 17 ...
1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 工作原理 14 1.4 解决构造程序歧义 17 ...
这次发布的Spring Security-3.0.1 是一个bug fix 版,主要是对3.0 中存在的一些问题进 行修 正。文档中没有添加新功能的介绍,但是将之前拼写错误的一些类名进行了修正,建议开发 者以这一版本的文档为参考。 ...
这是第一个支持注解的版本。 Spring 3.0 发布于 2009 年。 它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。 Spring 4.0 发布于 2013 年。 这是第一个完全支持 JAVA8 的版本。 功能 轻量级:Spring 在代码量和...
第2 章 Spring 3.0 的新特性和增强 21 2.1 Java 5.. 21 2.2 改进的文档. 21 2.3 新的文章和教程. 21 2.4 新的模块组织方式和构建系统.. 22 2.5 新特性概述. 22 2.5.1 为Java 5 更新...
本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,现在这一篇补上。下面开始贴代码。 文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下。 先说...
Spring框架概述1、什么是Spring2、Spring框架的优点3、Spring框架体系结构Spring框架——控制反转(IOC)1、IOC介绍2、基于配置的IOC2.1、导入jar包2.2、配置文件2.3、测试3、基于注解的IOC3.0、导包3.1、开启注解...
MyBatis 通过 xml 或注解两种方式将要执行的各种 sql 语句配置起来,并通过 java 对象和 sql 的 动态参数进行映射生成最终执行的 sql 语句, 最后由 mybatis 框架执行 sql 并将结 果映射为 java 对象并返回。 Spring...
Spring注解驱动开发,包含一个refresh()方法的流程(在resources目录下) 模块介绍 --->... config AOP IOC已经一些bean的流程配置模块--->启动也包含SpringMVC注解化开发和Servlet3.0注解开发