package cn.edu.springdemo.aopDemo;
import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
//定义一个切面类,横切关注点的集合(由 Spring IoC 容器管理)
//@Aspect
//@Component
//@Order(1) //多个切面类时,值小先执行
public class LoggerAspect {
private Logger logger = Logger.getLogger(this.getClass());
//aopDemo包下的所有类的任何修饰符和返回值类型以及任意参数 [修饰符 返回值类型 方法名(参数)]
//@Pointcut("execution(* cn.edu.springdemo.aopDemo.*.*(..))") //公共表达式
public void commonExpression(){} //提取出来共用
//@Around("commonExpression()")
public Object aroundDevice(ProceedingJoinPoint proceedingJoinPoint){
String name = proceedingJoinPoint.getSignature().getName();
List<Object> args = Arrays.asList(proceedingJoinPoint.getArgs());
Object result = null;
try {
logger.info(name + "方法执行前!!!");
result = proceedingJoinPoint.proceed(); //切入目标方法移至在此执行
logger.info(name + "方法执行后,参数为:" + args + ",运行结果为:" + result);
} catch (Throwable throwable) {
logger.info(name + "方法执行后,抛出异常为:" + throwable.getMessage());
throwable.printStackTrace();
}
logger.info(name + "方法执行后,参数为:" + args); //后置通知
return result;
}
//@Before("commonExpression()")
public void beforeDevice(JoinPoint joinPoint){
String name = joinPoint.getSignature().getName(); //获取方法名
logger.info(name + "方法执行前!!!");
}
// @After("commonExpression()")
// public void afterDevice(JoinPoint joinPoint){
// String name = joinPoint.getSignature().getName(); //获取方法名
// List<Object> args = Arrays.asList(joinPoint.getArgs()); //获取参数
// logger.info(name + "方法执行后,参数为:" + args);
// }
//@AfterReturning(value = "commonExpression()",returning = "result")
public void resultDevice(JoinPoint joinPoint,Object result){
String name = joinPoint.getSignature().getName(); //获取方法名
List<Object> args = Arrays.asList(joinPoint.getArgs()); //获取参数
logger.info(name + "方法执行后,参数为:" + args + ",运行结果为:" + result);
}
//@AfterThrowing(value = "commonExpression()",throwing = "exception")
public void exceptionDevice(JoinPoint joinPoint,Exception exception){
String name = joinPoint.getSignature().getName(); //获取方法名
logger.info(name + "方法执行后,抛出异常为:" + exception.getMessage());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
SpringDemo:Spring 框架知识案例
共271个文件
class:77个
java:55个
png:51个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 85 浏览量
2023-08-08
08:49:29
上传
评论
收藏 13.57MB ZIP 举报
温馨提示
1.创建第一个 Spring 程序案例 2.Spring IoC案例 3.Spring Bean案例 4.Spring 表达式语言案例 5.Spring xml 配置案例 6.Spring Annontation案例 7.Spring 泛型依赖注入案例 8.Spring AOP案例 9.Spring JDBCTemplate案例 10.Spring 事务案例
资源推荐
资源详情
资源评论
收起资源包目录
SpringDemo:Spring 框架知识案例 (271个子文件)
log4j.log.2023-05-22 5KB
StudentDaoImpl.class 8KB
StudentDaoImpl.class 8KB
MainServlet.class 5KB
MainServlet.class 5KB
UserTempController.class 4KB
Admin.class 3KB
LoggerAspect.class 3KB
JDBCDaoImpl.class 3KB
Student.class 3KB
Student.class 3KB
CurrencyDao.class 3KB
UserTemp.class 2KB
Student.class 2KB
DBUtil.class 2KB
DBUtil.class 2KB
JDBCTest.class 2KB
Book.class 2KB
LogDemo.class 2KB
Father.class 2KB
Son.class 2KB
User.class 2KB
BookDaoImpl.class 2KB
BeanLifecycle.class 2KB
UserDaoImpl.class 2KB
MathAnnontation.class 2KB
Discipline.class 1KB
JDBC.class 1KB
DisciplineFactoryBean.class 1KB
DisciplineAnnontation.class 1KB
UserTempDaoImpl.class 1KB
Student.class 1KB
Teacher.class 1KB
OrderServiceImpl.class 1KB
BeanLifecycleBPP.class 1KB
Score.class 1KB
AdminTest.class 1KB
DisciplineStaticFactory.class 1KB
AdminServiceImpl.class 1KB
LogAopImpl.class 1KB
ServletDemo.class 1KB
ServletDemo.class 1KB
DisciplineInstanceFactory.class 1KB
JDBCUtilTest.class 1KB
JDBCUtils.class 1KB
AopTest.class 1KB
AdminDaoImpl.class 978B
TransactionTest.class 974B
StudentServiceImpl.class 968B
TeacherServiceImpl.class 968B
QuartzJobTest.class 943B
UserTempServiceImpl.class 931B
Demo.class 878B
TeacherDaoImpl.class 751B
StudentDaoImpl.class 751B
GenericsDao.class 745B
QuartzJob.class 737B
GenericsService.class 689B
DemoDaoImpl.class 566B
FactoryService.class 466B
FactoryDao.class 441B
FactoryDao.class 426B
StudentDao.class 414B
StudentDao.class 414B
JDBCDao.class 373B
UserTempService.class 307B
UserTempDao.class 295B
LogAop.class 219B
BookDao.class 217B
UserDao.class 193B
StudentService.class 191B
TeacherService.class 191B
AdminService.class 185B
TeacherDao.class 179B
StudentDao.class 179B
AdminDao.class 173B
OrderService.class 172B
DemoDao.class 139B
main.css 10KB
global.css 6KB
wrong.gif 115B
add.html 2KB
SpringDemo.iml 156B
ecj-4.6.3.jar 2.34MB
mysql-connector-java-8.0.19.jar 2.25MB
catalina.jar 1.65MB
mysql-connector-java-5.1.46-bin.jar 981KB
tomcat-coyote.jar 873KB
mchange-commons-java-0.2.11.jar 592KB
jasper.jar 589KB
c3p0-0.9.5.2.jar 486KB
catalina-tribes.jar 287KB
tomcat-dbcp.jar 279KB
servlet-api.jar 244KB
tomcat-websocket.jar 235KB
tomcat-util-scan.jar 210KB
commons-dbcp2-2.9.0.jar 206KB
tomcat-util.jar 187KB
tomcat-i18n-ja.jar 177KB
tomcat-i18n-ko.jar 177KB
共 271 条
- 1
- 2
- 3
资源评论
啊Q老师
- 粉丝: 1w+
- 资源: 35
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功