日志,需要记录管理员操作日志,
这里需要传递2个参数, 文章的编号, 和 SESSION
@Aspect
@Controller
public class ControllerAopTest {
@Pointcut(
value = "execution(* net.watermelon.cms.web.PostController.*(java.lang.Integer,*,javax.servlet.http.HttpServletRequest,..)) && args(id,*,request,..)",
argNames = "id,request") //注意那个 args(id,..) 这样才能找到
private void p(Integer id,HttpServletRequest request){//此切入点的签名可以在别处调用此定义
}
@After(value="p(id,request)",argNames = "id,request")
private void afterP(JoinPoint joinPoint,Integer id,HttpServletRequest request){ //JoinPoint 放在第一个参数
UserSession userSession = (UserSession) request.getSession().getAttribute("userSession");
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;
Method method = methodSignature.getMethod();
method.getName();
if(method != null) //写入库吧
{
PostAdminOpro postAdminOpro = new PostAdminOpro();
postAdminOpro.setOperDate(new Date());
postAdminOpro.setOperName(method.getAnnotation(PostLog.class).value());
postAdminOpro.setPostId(id);
postAdminOpro.setUserId(userSession.getUserLoginId());
commonManager.save(postAdminOpro);
}
}
PostController 类似这样的函数
@PostLog("保存/修改")
@RequestMapping("/savePost.do")
public String savePost(@ModelAttribute Post post, BindingResult result,
SessionStatus status, HttpServletRequest request,
HttpServletResponse response) {
@PostLog("保存/修改") 是自定义的注释
这样写:
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface PostLog{
String value() default "";
}
相关推荐
现在,我们来看如何创建一个简单的Spring AOP例子: 1. **定义切面(Aspect)**:切面是包含通知(Advice)和切入点(Pointcut)的类。通知定义了要执行的逻辑,切入点定义了何时执行。例如,我们可以创建一个名为`...
总结一下,Spring AOP提供了一种优雅的方式来处理系统的横切关注点,如日志记录、事务管理或性能监控。通过定义切点、创建切面和配置通知,我们可以实现代码的解耦,提高可维护性和复用性。这个例子提供了学习Spring...
这个简单例子将帮助我们理解AOP的基本概念和如何在Spring框架中实现它。 首先,我们要知道AOP的核心概念:切面、通知、连接点、切点、目标对象和代理。切面是包含横切关注点(如日志记录、事务管理等)的模块化组件...
本资源用来展示如何使用 spring aop 进行日志记录,例子里面通过aop的配置,把产生的日志存放到当前项目的根目录下,而且对方法执行过程中的参数进行了记录,对于aop如何记录日志不清楚的同学可以看看。
Spring AOP 日志管理 实例LoggingThrowsAdvice.java
在这个"SpringAOP的例子"中,我们将深入探讨如何在Eclipse环境下利用Spring AOP和动态代理来实现这些功能。 首先,让我们理解什么是AOP。AOP是一种编程范式,旨在减少代码的重复性和增强可维护性。在传统的OOP中,...
首先,AOP的核心是切面(Aspect),它封装了横切关注点,如日志记录、事务管理等。在Spring AOP中,切面通常由一个或多个通知(Advice)组成,通知是在特定连接点(Join Point)执行的代码片段。连接点是指程序执行...
现在,我们来看一个简单的Spring AOP例子: 首先,我们需要定义一个切面,包含一个通知。例如,我们创建一个名为`LoggingAspect`的类,其中有一个`logExecutionTime`方法作为前置通知,记录方法的执行时间: ```...
在本例子中,我们将探讨如何使用Spring框架实现AOP来记录日志。 **一、AOP概念** AOP(Aspect Oriented Programming)的核心是切面(Aspect),它将分散在多个对象中的共同行为(如日志、异常处理)抽象出来,形成...
Spring 2.5 AOP(面向切面编程)...综上所述,Spring 2.5 AOP例子展示了如何利用类扫描和XML配置实现面向切面编程。通过理解这些概念和实践,我们可以更高效地管理和维护我们的应用程序,使其更具可扩展性和可维护性。
本例子就是一个使用 Spring AOP 注解实现的项目,旨在展示如何在简单的环境中应用这一特性。 1. **AOP 基础概念** - **切面(Aspect)**: 包含一组相关功能的模块,这些功能在多个对象中都可能被用到,比如日志、...
这个"springAOP演示例子"很可能会包含一个简单的Spring项目,展示如何创建和配置切面,定义切入点和通知,并观察其在实际代码中的工作原理。通过深入理解和实践这个例子,你可以更好地掌握Spring AOP的使用,提升你...
在"spring aop例子"中,我们可以看到`src`目录,这个通常包含Java源代码,其中可能包含了切面类、通知方法以及使用了切面的业务逻辑类。`extjstest`可能是测试目录,用于验证AOP配置和功能是否正确工作。`QQ五笔截图...
在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许我们在不修改源代码的情况下,对程序进行横向关注点的插入,比如日志记录、事务管理、权限检查等。在这里,我们重点关注如何利用Spring AOP实现分层...
**Spring AOP 使用实例** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要组成部分,它提供了一种在不修改原有代码的情况下,通过代理方式添加额外功能的技术。这种技术使得我们...
在Java开发中,Spring AOP(面向切面编程)是一个强大的功能,用于实现日志记录。AOP允许我们在不修改原有代码的情况下,插入新的行为,比如日志记录,事务管理等。下面将详细介绍如何在Spring框架中使用AOP来实现...
在Spring_AOP_Demo01中,我们可能看到一个简单的日志记录的例子,其中定义了一个切面,包含一个切点表达式,该表达式匹配所有在特定包或类下的方法调用,并使用`@Before`通知在方法执行前插入日志记录代码。...
在`springAop1`这个压缩包中,可能包含了一个简单的应用示例,展示了如何定义一个切面类,以及如何在该类中定义通知方法。例如,我们可能会看到一个名为`LoggingAspect`的类,其中包含了`@Before`注解的方法,用于在...
Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,用于实现横切关注点的模块化。它允许开发者定义“切面”,将那些与业务逻辑无关,却为多个对象共有的行为(如日志、...
在传统的面向对象编程中,业务逻辑与日志记录、事务管理、性能监控等横切关注点混合在一起,而AOP则是为了解决这一问题而诞生的编程范式。 **1. Spring AOP 基础概念** - **切面(Aspect)**:切面是关注点的模块化...