读书人

Spring AOP annotation 用盘绕通知写日

发布时间: 2012-09-18 16:21:42 作者: rapoo

Spring AOP annotation 用环绕通知写日志

package com.mhm.mng.impl;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;@Component@Aspectpublic class LogAOP {//声明切入点@Pointcut("execution(* com.mhm.mng.impl..*.*(..))")public void anyMethod(){};private void logbefore(Class clazz, String mName) {System.out.println(clazz.getName() + "." + mName + "()开始");}private void logend(Class clazz, String mName) {System.out.println(clazz.getName() + "." + mName + "()结束");}//环绕通知@Around("anyMethod()")public Object doprocess(ProceedingJoinPoint pjp) throws Throwable {logbefore(pjp.getTarget().getClass(), pjp.getSignature().getName());Object o = pjp.proceed();logend(pjp.getTarget().getClass(), pjp.getSignature().getName());return o;}}package com.mhm.spring.mng.impl;import org.junit.AfterClass;public class PersonMngImplTest {@BeforeClasspublic static void setUpBeforeClass() throws Exception {}@Testpublic void save() {try{ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");PersonMng personMng = (PersonMng)context.getBean("personMngImpl");personMng.save("aa");//personMng.get(1);} catch (Exception e) {e.printStackTrace();}}@AfterClasspublic static void tearDownAfterClass() throws Exception {}}

读书人网 >编程

热点推荐