Spring_1600_AOP_XML Aspect 的两种配置方法

package com.bjsxt.aop;

import org.aspectj.lang.ProceedingJoinPoint;

//@Aspect
//@Component
public class LogInterceptor {
	//@Pointcut("execution(public * com.bjsxt.service..*.add(..))")
	public void myMethod(){};

	//@Before("myMethod()")
	public void before() {
		System.out.println("method before");
	}

	//@Around("myMethod()")
	public void aroundMethod(ProceedingJoinPoint pjp) throws Throwable {
		System.out.println("method around start");
		pjp.proceed();
		System.out.println("method around end");
	}

	//@After("myMethod()")
	public void afterMethod() throws Throwable {
		System.out.println("method after");
	}
}



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-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
	<context:annotation-config />
	<context:component-scan base-package="com.bjsxt" />

	<bean id="logInterceptor" class="com.bjsxt.aop.LogInterceptor"></bean>
	<aop:config>
		<aop:aspect id="logAspect" ref="logInterceptor">
			<aop:before method="before"
				pointcut="execution(public * com.bjsxt.service..*.add(..))" />

			<aop:around method="aroundMethod"
				pointcut="execution(public * com.bjsxt.service..*.add(..))" />

			<aop:after method="aroundMethod"
				pointcut="execution(public * com.bjsxt.service..*.add(..))" />

		</aop:aspect>


	</aop:config>




</beans>


当下面注掉时,需要把最上面的方法打开,这样才能调用
<!-- 	<bean id="logInterceptor" class="com.bjsxt.aop.LogInterceptor"></bean> -->
<!-- 	<aop:config> -->
<!-- 		<aop:aspect id="logAspect" ref="logInterceptor"> -->
<!-- 			<aop:before method="before" -->
<!-- 				pointcut="execution(public * com.bjsxt.service..*.add(..))" /> -->

<!-- 			<aop:around method="aroundMethod" -->
<!-- 				pointcut="execution(public * com.bjsxt.service..*.add(..))" /> -->

<!-- 			<aop:after method="aroundMethod" -->
<!-- 				pointcut="execution(public * com.bjsxt.service..*.add(..))" /> -->

<!-- 		</aop:aspect> -->


<!-- 	</aop:config> -->




总结:一种是在java 文件里,进行配置; 另一种是在xml 文件中进行配,都能实现相应的调用!

猜你喜欢

转载自chimpp55.iteye.com/blog/2344323
今日推荐