本章的Demo是基于上一章(快速搭建Spring项目)进行修改
一、添加对aspectj的支持
<aspectj.version>1.6.11</aspectj.version>
...
...
...
<!--使用AspectJ方式注解需要相应的包-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<!--使用AspectJ方式注解需要相应的包-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
二、使用@Aspect声明切面
package demo2.aspect;
import java.lang.reflect.Method;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LogAspect {
@Before("execution(* demo2.service.DemoService.*(..))")
public void before(JoinPoint jp) {
MethodSignature ms = (MethodSignature) jp.getSignature();
Method method = ms.getMethod();
System.out.println("开始执行方法:" + method.getName());
}
}
三、使用@EnableAspectJAutoProxy,声明对aspectj的支持
package demo2.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@Configuration
@ComponentScan("demo2")
@EnableAspectJAutoProxy
public class DIConfig {
}
四、运行
开始执行方法:say
Hello Spring