package cn.itcast.cc.spring.aspectj;
import org.aspectj.lang.*;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;
@Aspect // AspectJ切面Bean
@Component // Bean
public class ArithmeticCalculatorAspect {
// 前置通知
@Before(value = "execution (* cn.itcast.cc.spring.aspectj.ArithmeticCalculator.* (..))")
public void beforeMethodLoggin(JoinPoint jp) {
System.out.println("before " + jp.getSignature().getName());
}
// 后置通知
@After(value = "execution (* cn.itcast.cc.spring.aspectj.ArithmeticCalculator.* (..))")
public void afterMethodLoggin(JoinPoint jp) {
System.out.println("after " + jp.getSignature().getName());
}
// 返回通知
@AfterReturning(value = "pointCut()", returning = "result")
public void afterMethodLogginReturn(JoinPoint jp, Object result) {
System.out.println("after " + jp.getSignature().getName() + " return " + result);
}
// 异常通知
@AfterThrowing(value = "pointCut()", throwing = "e")
public void errorMethodLoggin(JoinPoint jp, Throwable e) {
System.out.println("method " + jp.getSignature().getName()
+ " throwing " + e);
}
// 环绕通知,通过它可以实现上面所有的通知。
@Around("execution (* cn.itcast.cc.spring.aspectj.ArithmeticCalculator.* (..))")
public Object aroundMethodLoggin(ProceedingJoinPoint pjp) {
System.out.println("around_before " + pjp.getSignature().getName());
Object result = null;
try {
result = pjp.proceed();
} catch (Throwable e) {
e.printStackTrace();
System.out.println("around_error " + pjp.getSignature().getName());
}
System.out.println("around_after " + pjp.getSignature().getName());
System.out.println("around_after " + pjp.getSignature().getName()
+ " return " + result);
return result;
}
// 重用切入点,其他“通知方法”可以引用此方法名称“pointCut()”。
@Pointcut(value = "execution (* cn.itcast.cc.spring.aspectj.ArithmeticCalculator.* (..))")
public void pointCut() {
}
}
|
相关推荐
标题“传智播客2016spring资料4”揭示了这是一份关于Spring框架的教育资料,特别关注的是2016年传智播客教学课程中的第四天内容。传智播客是一家知名的IT教育机构,其课程通常深入浅出,适合初学者和有一定经验的...
传智播客spring教程全部源码,因为文件太大,所以分开来上传
传智播客spring 4天资料。包含课件和代码~
2017年-传智播客-张志君老师-SpringBoot视频教程 网上找了好久才找到的
通过传智播客的Spring框架2016版课程,学习者可以深入理解Spring的基本原理和实践应用,为成为一名合格的Java开发人员奠定坚实的基础。在实际学习过程中,应结合PPT和笔记,逐步掌握每个知识点,并通过实际项目练习...
按照“传智播客Spring2.5.6学习笔记最新整理”的指引,我们需从官方下载页面http://www.springsource.org/download下载Spring框架,随后解压缩并定位到关键的JAR文件。这些JAR文件包括: - `dist\spring.jar`:核心...
这个"传智播客spring ppt"很可能是针对初学者或进阶者设计的一系列课程材料,旨在帮助学习者深入理解并掌握Spring框架的各个方面。 在Spring框架中,最重要的概念之一是依赖注入。依赖注入允许开发者将对象之间的...
标题“传智播客Spring视频里所用的jar包”和描述中提到的内容涉及了Java Web开发中的几个关键框架和技术,主要包括Spring、Hibernate、Struts以及JPA。这些框架是构建企业级应用的重要组成部分,它们各自承担着不同...
这个"传智播客Spring教程源代码截取"包含了两个文件,"springѧϰ"和"spring学习",很可能是两个不同阶段的学习资料或者不同主题的示例代码。 1. **Spring IoC**:IoC是Spring的核心,它将对象的创建和管理权交给了...
这个"传智播客 spring2.5源代码_lib包"包含了Spring框架2.5版本的库文件,这些库文件对于理解Spring的工作原理、学习如何使用它以及进行相关开发非常有帮助。下面我们将深入探讨Spring 2.5的一些核心概念和功能。 1...
学习spring的好的例子。itcast 从购买的视屏里的源码
这个"传智播客Spring MVC课程源码"可能包含了从基础到高级的Spring MVC开发实例,对于学习和理解Spring MVC的工作原理及其在实际项目中的应用非常有帮助。下面将详细阐述Spring MVC的相关知识点。 1. **Spring MVC...
Spring 框架是Java开发中的一个重要组成部分,它是一个开源的控制反转(Inversion of Control,IoC)和面向切面(Aspect Oriented Programming,AOP)的容器框架。Spring的主要目标是简化企业级应用程序的开发,通过...
《2010传智播客struts2.1.8视频教程》1.09G 《EJB3.0视频教程》180M 《JDBC视频教程》664M 《jpa详解视频教程》165M 《spring2.5视频教程》365M 《传智播客_AJAX视频教程》1.27G 《传智播客_FTP视频教程》117M ...
传智播客培训机构的内部培训spring的ppt。很值得收藏学习。
传智播客-spring-PPT-黎活明-经典.ppt