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

基于xml配置文件的声明式AspectJ

2020-07-13 05:11 711 查看

1-导入apectJware-jar和spring-aop.jar

2-编写Teacher接口和Teacher实现类

public interface Teacher {

//上课
public void teach();

}
public class TeacherImpl implements Teacher {

@Override
public void teach() {
System.out.println("上课");
}
}

3-编写切面类

//切面类
public class MyAspect {

//点名
public void callName(){
System.out.println("点名");
}

//收发作业
public  void collectHomework(){
System.out.println("收发作业");
}
}

4-编写配置文件

<?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:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"
>
<!--目标类.被代理类的bean-->
<bean id="teacher" class="p313.aop.xml.TeacherImpl"/>

<!--切面类的bean-->
<bean id="myAspect" class="p313.aop.xml.MyAspect"/>

<!--aop的编程配置-->
<aop:config>
<aop:aspect ref="myAspect">
<!--在连接点上选择哪些点为切入点?
标准?
标准1
execution(* xml.*.*(..))  表示 指定包xml 所有类 所有方法 对方法入参没有要求 对返回类型也没有要求
标准2
execution(* xml.Teacher.teach(..))
标准3
p313.aop.xml
-->
<aop:pointcut id="myPointCut" expression="execution(* p313.aop.xml.*.*(..))"/>
<!--aop:before 前置增强-->
<aop:before method="callName" pointcut-ref="myPointCut"/>
<!--aop:after 最终增强-->
<aop:after method="callName" pointcut-ref="myPointCut"/>
</aop:aspect>
</aop:config>

</beans>

5-测试

public class MyTest {

public static void main(String[] args) {
ApplicationContext applicationContext=
new ClassPathXmlApplicationContext("p313/aop/xml/applicationContext.xml");

Teacher teacher= (Teacher) applicationContext.getBean("teacher");

teacher.teach();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: