spring(十)之使用基于XML方式配置AOP

在com.zzc.aop.xml包下创建Calculator接口、CalculatorImpl类、LoggerAspect类

Calculator.java

public interface Calculator {

	int add(int i, int j);
	int sub(int i, int j);
	int mul(int i, int j);
	int div(int i, int j);
}

CalculatorImpl.java

public class CalculatorImpl implements Calculator {

	@Override
	public int add(int i, int j) {
		int result = i + j;
		return result;
	}

	@Override
	public int sub(int i, int j) {
		int result = i - j;
		return result;
	}

	@Override
	public int mul(int i, int j) {
		int result = i * j;
		return result;
	}

	@Override
	public int div(int i, int j) {
		int result = i / j;
		return result;
	}
}

LoggerAspect

public class LoggerAspect {
	
	public void beforeMethod(JoinPoint joinPoint) {
		String methodName = joinPoint.getSignature().getName();
		List<Object> args = Arrays.asList(joinPoint.getArgs());
		System.out.println("the method " + methodName + " begins with " + args);
	}
}

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:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	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-4.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<bean id="calculator" class="com.zzc.aop.xml.CalculatorImpl"></bean>
	
	<!-- 配置切面的bean -->
	<bean id="loggerAspect" class="com.zzc.aop.xml.LoggerAspect"></bean>
	
	<!-- 配置AOP -->
	<aop:config>
		<!-- 配置切面表达式 -->
		<aop:pointcut expression="execution(int com.zzc.aop.xml.CalculatorImpl.*(int, int))" id="pointcut"/>
		<!-- 配置切面及通知 -->
		<aop:aspect ref="loggerAspect" order="1">
			<aop:before method="beforeMethod" pointcut-ref="pointcut" />
		</aop:aspect>
	</aop:config>
</beans>
发布了78 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Lucky_Boy_Luck/article/details/100022162