分享

spring用Aop实现计算器验证(注解方式)

 魏祖清 2016-09-11
//抽象类:ArithnmeticCalulator
public interface ArithnmeticCalulator {
int add(int i,int j);
int sub(int i,int j);
int mul(int i,int j);
int div(int i,int j);
}
//实现抽象类:ArithnmeticCalulator类
@Component("arithnmeticCalulator")
public class ArithnmeticCalulatorImpl implements ArithnmeticCalulator {
实现方法省去.....
}
LogginAspect实现
//把这个类声明为一个切面,需要吧该类放入IOC容器中,在声明一个切面
@Aspect
@Component
public class LogginAspect {
// 定义一个方法,用于声明切入点的表达式,一般在放中不需要添加其他的代码
@Pointcut("execution(* com.wzq.spring.aop.impl.*.*(..))")
public void declareJoinPointExpression() {

}

@Before("declareJoinPointExpression()")
public void beforeMethod(JoinPoint joinPoint) {
//获取ArithnmeticCalulator的method方法
String methodName = joinPoint.getSignature().getName();
//获取ArithnmeticCalulator的method值
List<Object> args = Arrays.asList(joinPoint.getArgs());
System.out.println("The method " + methodName + "begins" + args);
}

// 后置通知:在目标方法执行后执行的通知,执行的通通知 //后置通知不会返回结果
@After("declareJoinPointExpression()")
public void afterMethod(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().getName();
System.out.println("The method " + methodName + "ends");
// 异常通知
@AfterThrowing(value ="declareJoinPointExpression()", throwing = "ex")
public void afterThrowing(JoinPoint joinPoint, Exception ex) {
String methodName = joinPoint.getSignature().getName();
System.out.println("The method " + methodName + "execution" + ex);
}
}
XML配置
<!-- 配置bean -->
<bean class="com.wzq.spring.aop.xml.ArithnmeticCalulatorImpl" id="arithnmeticCalulator"></bean>
<!-- 配置切面的bean -->
<bean id="logginAspect" class="com.wzq.spring.aop.xml.LogginAspect"></bean>
main方法
public class Main {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
ArithnmeticCalulator arithnmeticCalulator = ctx
.getBean(ArithnmeticCalulator.class);
int result = arithnmeticCalulator.sub(6, 6);
System.out.println("result:" + result);
int result1=arithnmeticCalulator.div(10, 0);
System.out.println(result1);
}
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多