您的位置:首页 > 编程语言 > Java开发

springmvc之环绕通过(最简单的用法,配置)

2016-12-07 09:15 162 查看
1. service类

package com.ssm.blog.aop;

public interface AopService {
public void sayAround(String param);
}


2. serviceImpl类

package com.ssm.blog.aop;

public class AopServiceImpl implements AopService{

public void sayAround(String param) {
System.out.println("============around param:" + param);
}

}


3. aop环绕通知类

package com.ssm.blog.aop;

import org.aspectj.lang.ProceedingJoinPoint;

public class StringAop{

public Object aroundAdvice(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("===========around before advice");
Object[] obj = pjp.getArgs() ;
Object retVal = null ;
for(int i=0;i<obj.length;++i){
System.out.println(i+"---->"+obj[i]);
if(obj[i].equals("haha")){
retVal = pjp.proceed(new Object[] {"replace12312321"});
}
}
//Object retVal = pjp.proceed(new Object[] {"replace"});
System.out.println("===========around after advice");
return retVal ;
}

}


4. 在配置文件中进行配置

<bean id="aspectSupportBean" class="com.ssm.blog.aop.StringAop"/>
<bean id="aopService" class="com.ssm.blog.aop.AopServiceImpl"/>

<aop:config>
<aop:aspect ref="aspectSupportBean">
<aop:around pointcut="execution(* com.ssm..*.sayAround(..))" method="aroundAdvice"/>
</aop:aspect>
</aop:config>


5. Junit测试

public class TestAop {

@Test
public void testSchemaAroundAdvice() {
System.out.println("======================================");
ApplicationContext ctx = new ClassPathXmlApplicationContext("aop.xml");
AopService aopService =  ctx.getBean("aopService", AopService.class);
aopService.sayAround("haha");
System.out.println("======================================");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: