新一代远程接入产品
2009-10-13 14:36
351 查看
学习笔记(七)中,总结了AOP中的基本概念,并用注解的方式实现了AOP。
下面用配置的方式实现,以同注解方式实现比较,从而深入掌握AOP编程。
代码一:接口和实现类
代码二:拦截器的定义
代码三:配置文件
测试类:
下面用配置的方式实现,以同注解方式实现比较,从而深入掌握AOP编程。
代码一:接口和实现类
package cn.itcast.server; public interface IPersonService { public void save(String name); public String getPersonName(Integer id); public void update(String name,Integer id); }
package cn.itcast.server.impl; import cn.itcast.server.IPersonService; public class PersonServiceBean2 implements IPersonService { public String getPersonName(Integer id) { System.out.println("这是getPersonName方法"); return "xxx"; } public void save(String name) { // throw new RuntimeException("我是例外"); System.out.println("这是save方法"); } public void update(String name, Integer id) { System.out.println("这是update方法"); } }
代码二:拦截器的定义
package cn.itcast.server; import org.aspectj.lang.ProceedingJoinPoint; public class MyInteceptor2 { public void doAccessCheck(){ System.out.println("这里输出的是前置通知 "); } public void doAfterReturning(){ System.out.println("这里输出的是后置通知 " ); } public void doAfterReturn(){ System.out.println("这里输出的是最终通知"); } public void doAfterThrowing(){ System.out.println("这里输出的是例外通知 "); } public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable{ //判断用户是否具有权限 System.out.println("进入方法"); Object result = pjp.proceed(); System.out.println("退出方法"); return result; } }
代码三:配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd "> <aop:aspectj-autoproxy/> <!--AOP开发(基于xml配置进行AOP开发,基于注解方式进行AOP开发) --> <bean id="myInteceptor2" class="cn.itcast.server.MyInteceptor2"></bean> <bean id="personService2" class="cn.itcast.server.impl.PersonServiceBean2"></bean> <aop:config> <aop:aspect id="asp" ref="myInteceptor2"> <!-- expression说明要处理的切入点(方法),下面那个意思是过滤任意返回类型的,cn.itcast.server.impl.PersonServiceBean2类中的任意参数的切入点 --> <!-- <aop:pointcut id="mycut" expression="execution(* cn.itcast.server.impl.PersonServiceBean2.*(..) )"/> --> <aop:pointcut id="mycut" expression="execution(* cn.itcast.server.impl.PersonServiceBean2.*(java.lang.String,..) )"/> <!-- <aop:pointcut id="mycut" expression="execution(!void cn.itcast.server.impl.PersonServiceBean2.*(..) )"/> --> <aop:before pointcut-ref="mycut" method="doAccessCheck"/> <aop:after-returning pointcut-ref="mycut" method="doAfterReturning"/> <aop:after-throwing pointcut-ref="mycut" method="doAfterThrowing"/> <aop:after pointcut-ref="mycut" method="doAfterReturn"/> <aop:around pointcut-ref="mycut" method="doBasicProfiling"/> </aop:aspect> </aop:config> </beans>
测试类:
package junit.test; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.itcast.server.IPersonService; public class SpringAOPTest { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Test public void interceptorTest(){ ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml"); IPersonService ipersonService = (IPersonService) ac.getBean("personService2"); ipersonService.update("xxx",2); ipersonService.save("xx"); ipersonService.getPersonName(2); } }
相关文章推荐
- 远程接入产品与企业即时通讯工具完美结
- WTBS远程接入产品图片
- 瑞友天翼 远程应用接入系统 --让ERP如虎添翼
- IT 机房设备远程管理方案-Lantronix产品综合方案(一)
- p2p远程会议系统产品比较
- 关于RCP产品无法进行远程调试的说明(源码断点和高亮显示位置不对)
- erlang 接入远程shell控制台
- 新一代软件集成开发平台——Trufun Kant Studio 2008产品介绍
- 远程调试eclipse产品的配置参数
- 互联网产品接入支付功能如何测试?
- 穿越“宽带接入”的迷雾 :WAN接入关键技术详解(以及 cisco 路由器产品基础知识)
- 思科在多个产品中修补了可远程利用的高风险安全漏洞
- Modem接入Console口实现远程拨号连接 推荐
- 极通EWEBS远程接入v4.2 XP专版
- 用友U8远程接入解决方案用户手册下载