首先修改LogAspect.java,这里可以移除掉所有AOP相关的注解,只保留@Component。
package com.lj.proxy;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.springframework.stereotype.Component;
import com.lj.log.Logger;
/**
*这里只剩下@Component了,其它的注释都去掉了,都会通过beans.xml的信息让Spring自己来进行处理。
*/
@Component("logAspect")
public class LogAspect {
public void logStart(JoinPoint jp) {
// 返回类对象
System.out.println(jp.getTarget());
// Signature.getName()返回方法名称
System.out.println(jp.getSignature().getName());
Logger.info("加入日志");
}
public void endStart(JoinPoint jp) {
Logger.info("方法调用结束");
}
public void logAround(ProceedingJoinPoint proceedingJoinPoint) {
Logger.info("开始在Around中加入日志");
try {
proceedingJoinPoint.proceed();
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 执行程序
Logger.info("Around执行结束");
}
}
接下来只要在beans.xml中配置切面,将这个类里的方法'切入'到要做log的类的方法就可以了。
<aop:config> <!-- ref对应的是@Component("logAspect") -->
<!-- 切面对象名称是logAspect -->
<aop:aspect id="logAspect" ref="logAspect">
<!-- 设置pointcut -->
<aop:pointcut id="logPointCut" expression="execution(* com.lj.dao.*.add*(..))||
execution(* com.lj.dao.*.loadBy*(..))" />
<!-- 设置@before的方法,pointcut-ref对应上面的pointcut id -->
<aop:before method="logStart" pointcut-ref="logPointCut"/>
<aop:after method="endStart" pointcut-ref="logPointCut"/>
<aop:around method="logAround" pointcut-ref="logPointCut"/>
<!-- method名称要对应LogAspect里面的方法名称 -->
</aop:aspect>
</aop:config>
分享到:
相关推荐
在Spring AOP中,我们可以使用注解或者XML配置来定义切面。以注解为例,`@Aspect`注解用于定义一个切面类,`@Before`、`@After`、`@Around`、`@AfterReturning`和`@AfterThrowing`分别代表在方法执行前、后、前后...
- **SpringAOP.avi**:可能是一个视频教程,详细讲解了Spring AOP的概念和实践。 - **SpringAOP.doc**:可能是文档教程,包含了详细的步骤和示例代码。 - **SpringAOP_src.rar**:源代码示例,供你参考和实践。 - **...
#### 四、Spring配置与AOP应用 在Spring框架中,使用XML配置文件将业务Bean组织起来。首先,配置`MyServiceBean`实例,并注入所需的属性,如用户目录。然后,定义AOP的切面,包括切入点和通知,以增强业务Bean的...
本教程将通过一个简单的Spring AOP入门案例,帮助初学者理解这一概念。 ### 一、AOP基础 1. **切面(Aspect)**:切面是关注点的模块化,它封装了跨越多个对象的行为或数据。在Spring AOP中,切面可以由一个类定义...
在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...
在"Spring AOP管理XML版"中,我们主要关注的是通过XML配置来管理AOP。以下是一些关键的XML配置元素: - `<aop:config>`:这是AOP配置的根元素,包含所有其他的AOP配置。 - `<aop:aspect>`:定义一个切面,内部可以...
通过这个入门案例,你可以逐步学习如何创建和配置切面,以及如何利用Spring AOP实现实际的需求。在实践中,你会看到如何利用AOP提升代码的可维护性和可复用性,避免了横切关注点对业务代码的侵入。同时,它也会帮助...
Spring Aop基于xml练习
以下是一个简单的Spring AOP入门实例步骤: 1. 首先,定义一个切面类,包含通知方法。例如,一个简单的日志切面: ```java @Aspect @Component public class LoggingAspect { @Before("execution(* com.example*...
在Spring中,AOP可以通过两种方式实现:基于XML配置和基于注解的方式。下面我们将分别探讨这两种方法。 1. 基于XML配置的AOP: 在Spring的配置文件中,我们需要定义一个`<aop:config>`元素来启用AOP支持,并创建切...
**Spring AOP 入门及其实例讲解** 在软件开发中,面向切面编程(Aspect Oriented Programming,简称AOP)是一种编程范式,它旨在提高代码的可重用性,减少冗余,并将关注点分离。Spring框架是Java开发中的一个流行...
2. **XML配置驱动**:在Spring配置文件中定义切面、通知和切入点表达式。 **Spring AOP示例** 以入门级的`advice`为例,我们可能有一个简单的日志切面: ```java @Aspect @Component public class LoggingAspect ...
### Spring2-AOP入门实例教程知识点详解 #### 一、Spring框架概述 - **轻量级J2EE开发框架**:Spring是一个轻量级的Java应用框架,它为开发复杂的企业级应用提供了一种简化的方法。 - **发展历程**:自2002年发布...
### Spring AOP 入门详解 #### 一、Spring AOP 概述 Spring AOP (Aspect Oriented Programming) 是一种面向切面编程的技术,在Spring框架中得到了良好的支持。通过这种方式,开发者可以更加灵活地组织代码,使得...
在Spring AOP中,我们可以使用注解或者XML配置来定义切面、通知和切点。例如,`@Aspect`注解用于标记一个类作为切面,`@Before`、`@After`等用于标记通知,`@Pointcut`用于定义切点表达式。 视频教程中提到的"AOP...
5. **Spring AOP入门**: Spring AOP通过XML配置或者注解方式来实现AOP功能。在XML配置中,可以定义Bean、Advisor、Pointcut等元素。在注解方式下,可以使用`@Aspect`、`@Before`、`@After`、`@AfterReturning`、`@...
在Spring AOP中,我们可以使用XML配置或者注解的方式来定义切面。下面是一个简单的例子: 1. **XML配置**: ```xml <aop:config> <!-- 定义切入点表达式 --> <aop:pointcut id="serviceMethods" expression=...
1. XML配置:在Spring配置文件中声明切面、通知和切入点表达式。 2. 注解驱动:使用`@Aspect`注解定义切面,`@Before`, `@After`, `@Around`, `@AfterReturning`, `@AfterThrowing`等注解定义通知,`@Pointcut`定义...
**Spring AOP 入门** 在深入探讨Spring AOP之前,我们先理解AOP(面向切面编程)的概念。AOP是一种编程范式,旨在减少代码的重复性,提高代码的可维护性和可读性。它通过将关注点(如日志记录、事务管理、安全性等...