您的位置:首页 > 编程语言 > ASP

AspectJ 入门例子

2016-08-12 00:00 260 查看
所需要的包

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.9</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>

1.定义一个接口

public interface IStudent {

public void hello(String name);
}

2.实现上面的接口

public class StudentImpl implements IStudent{

public void hello(String name) {
System.out.println("我的名字叫:"+name);
}
}

3.定义切面类

import org.aspectj.lang.JoinPoint;

public class StudentAdvice {

public void logBefore(JoinPoint joinPoint) {
System.out.println("方法执行前执行");
}
public void logAfter(JoinPoint joinPoint) {
System.out.println("方法执行后执行");
}
}

4.定义applicationContext.xml

<aop:aspectj-autoproxy />

<bean id="student" class="com.aop.StudentImpl" />
<!-- Aspect -->
<bean id="logAspect" class="com.aop.StudentAdvice" />

<aop:config>
<aop:aspect id="aspectLoggging" ref="logAspect" >
<!-- @Before -->
<aop:pointcut id="pointCutBefore"
expression="execution(* com.aop.IStudent.hello(..))" />
<aop:before method="logBefore" pointcut-ref="pointCutBefore" />

<!-- @After -->
<aop:pointcut id="pointCutAfter"
expression="execution(* com.aop.IStudent.hello(..))" />
<aop:after method="logAfter" pointcut-ref="pointCutAfter" />

</aop:aspect>
</aop:config>

5.创建测试类

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
IStudent student = ac.getBean("student", IStudent.class);
student.hello("张三");

方法执行前执行
我的名字叫:张三
方法执行后执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring AspectJ