1.首先确定spring需要的jar包:spring-aop.jar , aspectjrt.jar ,aspectjweaver.jar
2.编写普通类
package org.ssh.service.impl;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import org.ssh.service.interfaces.Axe1;
import org.ssh.service.interfaces.Person1;
@Component("chinese")
public class Chinese implements Person1{
private Axe1 axe;
public void useAxe() {
System.out.println(axe.chop());
}
public Axe1 getAxe() {
return axe;
}
@Resource
@Qualifier("StoneAxe")
public void setAxe(Axe1 axe) {
this.axe = axe;
}
}
3.编写切面类
package org.ssh.service.impl;
import org.aspectj.lang.JoinPoint;
import org.springframework.stereotype.Component;
@Component("aspectClass")
public class MyAspect {
public void beforeMethodAdvice(JoinPoint p ){
System.out.println("在方法之前执行。。。。");
}
}
2.配置applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" <!--需要添加-->
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop <!--需要添加-->
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd <!--需要添加-->
">
<context:annotation-config></context:annotation-config><!-开启注解功能-->
<context:component-scan base-package="org.ssh.service.impl" /> <!--spring可以自动去扫描base-pack下面或者子包下面的java文件,扫描到符合注解格式的,则注册为bean-->
<aop:aspectj-autoproxy/> <!-开启aop功能-->
<!-AOP配置-->
<aop:config>
<aop:pointcut id="myPointcut" expression="execution(* org.ssh.service.impl.*.useAxe(..))"/><!-配置切入点-->
<aop:aspect id="myAspect" ref="aspectClass"> <!-配置切面类-->
<aop:before method="beforeMethodAdvice" pointcut-ref="myPointcut"/><!-定义在切入点使用的增强处理-->
</aop:aspect>
</aop:config>
</beans>