首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

spring aop注脚Demo

2013-04-02 
spring aop注解Demo-----------------------------------------代理类----------------------------------

spring aop注解Demo

----

-------------------------------------代理类-----------------------------------

import javax.sound.midi.SysexMessage;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;@Aspectpublic class AgentProxy {@Pointcut("execution(* proxy.spring.agent.annotation.*.*(..))")public void sing2(){}@Before("sing2()")public void before(){System.out.println("before()........");}@After("sing2()")public void after(){System.out.println("after()......");}@AfterThrowing("sing2()")public void afterThrow(){System.out.println("after()......");}@Around("sing2()")public void around(ProceedingJoinPoint p){//得到参数Object[] o= p.getArgs();for (int i = 0; i < o.length; i++) {Object object = o[i];System.out.println(object);}try {//必须加,不加就不执行原函数p.proceed();} catch (Throwable e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("around()....");}@AfterReturning("sing2()")public void afterReturn(){System.out.println("afterReturn()......");}}


----------------------------------被代理类--------------------------------------

import org.aspectj.lang.annotation.Pointcut;public class MySinger {public void sing2(){System.out.println("我唱歌");}public String ss2(String name){System.out.println("MySinger"+"...."+name);return name;}}


------------------------------------xml加一句---------------------

 <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

 

------------------------------------测试-----------------------

import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {public static void main(String[] args) {ApplicationContext app =new ClassPathXmlApplicationContext("proxy/spring/agent/annotation/application.xml"); MySinger singer =(MySinger)app.getBean("singer");singer.sing2();System.out.println("main"+"...."+ singer.ss2("周杰伦"));}}


 

热点排行