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

spring AOP 2.0 实现拦截错误和一些临时功能

2012-10-25 
spring AOP 2.0 实现拦截异常和一些临时功能??????????本来是测试网上的例子,看着看着,觉得可以修改的简单

spring AOP 2.0 实现拦截异常和一些临时功能

??????????本来是测试网上的例子,看着看着,觉得可以修改的简单一点,说干就干。

1,在Eclispe里面建立一个项目,随便,这叫context吧,使用jdk5的环境。

2,在项目里面加入log4j-1.2.8.jar,commons-logging-1.0.4.jar,cglib-nodep-2.1_3.jar,spring.jar(2.5),aspectweaver.jar,aspecjrt.jar。

3,为了能够在系统中使用log4j,在项目目录下加入log4j.properties,内容

?


              10,编写测试类

              1. package?phoenics.context.test; ??
              2. ??
              3. import?org.springframework.context.ApplicationContext; ??
              4. import?org.springframework.context.support.FileSystemXmlApplicationContext; ??
              5. import?phoenics.context.code.Logic2; ??
              6. import?phoenics.context.code.LogicInterface; ??
              7. /** ?
              8. ?*?@author?phoenics ?
              9. ?*?TestAop ?
              10. ?*/??
              11. public?class?TestAop?{ ??
              12. ?public?static?void?main(String[]?args)?throws?InstantiationException,?IllegalAccessException,?ClassNotFoundException?{ ??
              13. ????????//通过ApplicationContext获取配置文档 ??
              14. ????????ApplicationContext?actx=new?FileSystemXmlApplicationContext("exception_config.xml"); ??
              15. ????????LogicInterface?logic1?=?(LogicInterface)actx.getBean("logic1"); ??
              16. ????????Logic2?logic2?=?(Logic2)actx.getBean("logic2"); ??
              17. ????????//模拟执行新增、修改、删除方法 ??
              18. ????????try?{ ??
              19. ?????????System.out.println("logic1?starting..."); ??
              20. ????????????logic1.doInsert("张三"); ??
              21. ????????????logic1.doUpdate("李四"); ??
              22. ????????????logic1.doDelete("王五"); ??
              23. ????????}?catch?(Exception?ex)?{} ??
              24. ????????try?{ ??
              25. ?????????System.out.println("logic2?starting...");? ??
              26. ????????????logic2.doInsert("张三"); ??
              27. ????????????logic2.doUpdate("李四"); ??
              28. ????????????logic2.doDelete("王五"); ??
              29. ????????}?catch?(Exception?ex)?{} ??
              30. ?} ??
              31. } ??
              32. ??

              ?11,看到的结果:

              logic1 starting...
              Logic1...执行具体负责新增的业务逻辑…
              Logic1...执行具体负责修改的业务逻辑…
              Logic1...执行具体负责删除的业务逻辑…
              2007-10-26 20:31:53,390 ERROR (Logger.java:30) - 王五 run doDelete Throw....java.lang.ArithmeticException: / by zero
              logic2 starting...
              2007-10-26 20:31:53,421? INFO (Logger.java:27) - 张三 run Starting doInsert method
              Logic2...执行具体负责新增的业务逻辑…
              2007-10-26 20:31:53,625? INFO (Logger.java:27) - 张三 run doInsert method end
              2007-10-26 20:31:53,625? INFO (Logger.java:27) - run doInsert and run method in 204ms
              2007-10-26 20:31:53,625? INFO (Logger.java:27) - 李四 run Starting doUpdate method
              Logic2...执行具体负责修改的业务逻辑…
              2007-10-26 20:31:54,078? INFO (Logger.java:27) - 李四 run doUpdate method end
              2007-10-26 20:31:54,078? INFO (Logger.java:27) - run doUpdate and run method in 453ms
              2007-10-26 20:31:54,093? INFO (Logger.java:27) - 王五 run Starting doDelete method
              Logic2...执行具体负责删除的业务逻辑…
              2007-10-26 20:31:54,093? INFO (Logger.java:27) - 王五 run doDelete method end
              2007-10-26 20:31:54,093? INFO (Logger.java:27) - run doDelete and run method in 0ms
              2007-10-26 20:31:54,093 ERROR (Logger.java:30) - 王五 run doDelete Throw....java.lang.ArithmeticException: / by zero

热点排行