本文共 887 字,大约阅读时间需要 2 分钟。
1.点睛:
AOP:面向切面编程,相对于OOP面向对象编程。Spring的AOP的存在目的是为了解耦。AOP可以让一组类共享相同的行为。在OOP中只能通过继承类和实现接口,来使代码的耦合度增强,AOP弥补了OOP的不足。Spring支持AspectJ的注解式切面编程。(1)使用@AspectJ声明是一个切面。(2)使用@After、@Before、@Around定义建言(advice),可直接将拦截规则(切点)作为参数。(3)其中@After、@Before、@Around参数的拦截规则为切点(PointCut),为了使切点复用,可使用@PointCut专门定义拦截规则,然后在@After、@Before、@Around的参数中调用。(4)其中符合条件的每一个被拦截处为连接点(JointPoint)示例将演示基于注解拦截和基于方法规则拦截两种方式,演示一种模拟记录操作的日志系统的实现。其中注解式拦截能够很好地控制要拦截的粒度和获得更丰富的信息,Spring本身在事务处理(@Transcational)和数据缓存(@Cacheable等)上面都使用此种形式的拦截。
2.示例
(1)添加Spring aop支持及AspectJ依赖(2)编写拦截规则的注解注解本身是没有功能的,就和xml一样。注解和xml都是一种元数据,元数据即解释数据的数据,这就是所谓配置。注解的功能来自用这个注解的地方。(3)编写使用注解的被拦截类(4)编写使用方法规则被拦截类(5)编写切面通过@Aspect注解声明一个切面通过@Component让此切面成为Spring容器管理的Bean通过@PointCut注解声明切点通过@After注解声明一个建言,并使用@PointCut定义的切点通过反射可获得注解上的属性,然后做日志记录相关的操作,下面的相同通过@Before注解声明一个建言,此建言直接使用拦截规则作为参数(6)配置类使用@EnableAspectJAutoProxy注解开启Spring对AspectJ的支持(7)运行结果:转载地址:http://qrqyx.baihongyu.com/