spring的aop编程

转载 2015年11月20日 18:30:19


更多请看 http://blog.csdn.net/wangpeng047/article/details/8560694


在上篇博文中,我向大家介绍了Aop重要概念和教程,这回给出代码示例。

一、XML方式

1. TestAspect:切面类

[java] view plaincopy
  1. package com.spring.aop;  
  2.   
  3. import org.aspectj.lang.JoinPoint;  
  4. import org.aspectj.lang.ProceedingJoinPoint;  
  5.   
  6. public class TestAspect {  
  7.   
  8.     public void doAfter(JoinPoint jp) {  
  9.         System.out.println("log Ending method: " + jp.getTarget().getClass().getName() + "." + jp.getSignature().getName());  
  10.     }  
  11.   
  12.     public Object doAround(ProceedingJoinPoint pjp) throws Throwable {  
  13.         long time = System.currentTimeMillis();  
  14.         Object retVal = pjp.proceed();  
  15.         time = System.currentTimeMillis() - time;  
  16.         System.out.println("process time: " + time + " ms");  
  17.         return retVal;  
  18.     }  
  19.   
  20.     public void doBefore(JoinPoint jp) {  
  21.         System.out.println("log Begining method: " + jp.getTarget().getClass().getName() + "." + jp.getSignature().getName());  
  22.     }  
  23.   
  24.     public void doThrowing(JoinPoint jp, Throwable ex) {  
  25.         System.out.println("method " + jp.getTarget().getClass().getName() + "." + jp.getSignature().getName() + " throw exception");  
  26.         System.out.println(ex.getMessage());  
  27.     }  
  28. }  

2. AServiceImpl:目标对象

[java] view plaincopy
  1. package com.spring.service;  
  2.   
  3. // 使用jdk动态代理  
  4. public class AServiceImpl implements AService {  
  5.   
  6.     public void barA() {  
  7.         System.out.println("AServiceImpl.barA()");  
  8.     }  
  9.   
  10.     public void fooA(String _msg) {  
  11.         System.out.println("AServiceImpl.fooA(msg:" + _msg + ")");  
  12.     }  
  13. }  

3. BServiceImpl:目标对象

[java] view plaincopy
  1. package com.spring.service;  
  2.   
  3. // 使用cglib  
  4. public class BServiceImpl {  
  5.   
  6.     public void barB(String _msg, int _type) {  
  7.         System.out.println("BServiceImpl.barB(msg:" + _msg + " type:" + _type + ")");  
  8.         if (_type == 1)  
  9.             throw new IllegalArgumentException("测试异常");  
  10.     }  
  11.   
  12.     public void fooB() {  
  13.         System.out.println("BServiceImpl.fooB()");  
  14.     }  



  15.   

Spring AOP编程(注解实现)

一、基本概述Aop(aspect object programming) 面向切面编程 功能: 让关注点代码与业务代码分离!关注点 重复代码就叫做关注点;切面 关注点形成的类,...
  • scgaliguodong123_
  • scgaliguodong123_
  • 2015年11月11日 11:13
  • 1090

Spring:AOP(二)编程方式实现AOP

public interface UserService {     void queryUsers();     void saveUser();     void deleteU...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2015年12月08日 15:29
  • 519

Spring的AOP切面编程

Spring的AOP切面编程一:面向切面编程含义 在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程 二:AOP的基本概念 1)通知(Advice):织入到目标类...
  • qin_water
  • qin_water
  • 2016年07月18日 11:05
  • 1267

Spring之AOP面向切面编程实现(一)

实现方式:基于配置XML和基于注解实现。场景:一个手机进货系统,一旦要进货(或出货),要提前记录进货时间,进货完毕后,还要提醒其它人进行验货。 分析:3步走,1,操作进货(或出货)的方法的时候,先记录...
  • u013410747
  • u013410747
  • 2016年07月23日 12:52
  • 790

AOP-纵向横向的区分和基本概念

切点,横向,纵向,切面 , advice
  • fk002008
  • fk002008
  • 2017年09月18日 10:53
  • 456

Spring AOP应用实例demo

AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-OrientedPrograming,面向对象编程)的补充和完善。OOP引入封装、继承和多...
  • hejingyuan6
  • hejingyuan6
  • 2015年03月16日 08:44
  • 11628

对spring aop的理解

一.前言 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP...
  • qq_36859415
  • qq_36859415
  • 2016年11月30日 14:00
  • 1008

spring的IOC和AOP详细讲解

1.解释spring的ioc? 几种注入依赖的方式?spring的优点?        IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是有这个IOC容器...
  • u012151556
  • u012151556
  • 2016年04月07日 23:41
  • 778

Spring AOP 编程最简单的例子

一、引言 感觉 Spring AOP 有点像对一个方法进行前后左右进行加工包装。 二、代码结构与分析 三、代码与注意点注释 ① Cut.java 切入点 package aop; //...
  • larger5
  • larger5
  • 2017年11月30日 09:28
  • 95

深入理解面向切面的编程AOP、AspectJ、Spring

Spring:是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架。Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松...
  • wangbaochu
  • wangbaochu
  • 2016年12月07日 13:59
  • 1374
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring的aop编程
举报原因:
原因补充:

(最多只允许输入30个字)