Spring3.0 AOP 教程:简单DEMO

需积分: 9 5 下载量 123 浏览量 更新于2024-09-19 收藏 23KB DOCX 举报
"这篇内容主要展示了Spring AOP的简单应用,通过一个DEMO来演示如何在Spring框架中使用AOP进行方法拦截。" Spring AOP(面向切面编程)是Spring框架的重要组成部分,它允许开发者在不修改源代码的情况下,对程序进行横切关注点的插入,如日志记录、事务管理、性能监控等。AOP的核心概念包括切面(Aspect)、连接点(Join Point)、通知(Advice)、切点(Pointcut)和织入(Weaving)。 在这个DEMO中,首先定义了一个接口`Person`和它的实现类`Man`,`Person`接口有一个`readBook`方法,而`Man`类实现了这个接口。这些是业务逻辑中的正常类和方法,即所谓的"目标对象"。 接着,创建了一个切面类`PersonProxy`,它使用了AspectJ库提供的注解。在`PersonProxy`类中,定义了两个通知(Advice):`@After`和`@Before`,分别表示在方法执行之后和之前进行的操作。这两个注解指定了切点(Pointcut),`@After`的切点匹配所有公共方法的执行,而`@Before`的切点则匹配所有方法的调用。 - `@After("execution(public **.*(..))"`:这个切点表达式会匹配所有公共方法的执行,星号`*`代表任意字符,双星号`**`代表任意层次的包名,`(..)`表示任何数量的参数。 - `@Before("execution(**(..))"`:这个切点更广泛,匹配所有方法的调用,无论其访问权限或参数。 当这些切面被织入到应用程序中时,每次`Man`类的`readBook`方法被调用时,都会先执行`before`方法,然后执行实际的`readBook`方法,最后执行`after`方法。这就是Spring AOP如何实现在不修改原有业务代码的基础上,添加额外功能的能力。 为了运行这个DEMO,你需要配置Spring的AOP支持,并确保引入了Spring、Commons Logging、AspectJ以及aopalliance相关的依赖库。在Eclipse中,你可以创建一个Java项目或者Web项目,然后将这些类和配置文件添加进去,启动Spring容器,就可以看到AOP的切面通知在方法调用前后自动执行。 Spring AOP提供了一种优雅的方式,通过定义切面和通知,将关注点从业务逻辑中分离出来,提高了代码的可读性和可维护性,是现代企业级应用开发中的重要工具。理解并熟练掌握Spring AOP的使用,对于任何Spring开发者来说都是至关重要的。