####基于注解拦截 和 基于方法规则拦截: 模拟记录操作的日志系统的实现
注 : 注解式拦截能够很好的控制要拦截的粒度和获得更丰富的信息,Spring 本身在 事物处理(@Transcational) 和 数据缓存(@Cacheable等)上面都使用此种形式的拦截
- Spring 容器类选用: AnnotationConfigApplicationContext
- AOP 面向切面编程
Spring的AOP的存在是为了解耦,AOP可以让一组类共享相同的行为。
- OOP 面向对象编程
OOP 只能通过继承和实现接口,来使代码耦合性增强,而且类继承只能为单继承,阻碍了更多行为添加到一组类上,AOP弥补了OOP的缺点。
- Spring 支持 AspectJ的注解式编程
- 使用 @Aspect 声明是一个切面
- 使用 @After @Brfore @Around 定义建言(advice),可直接将拦截规则(切点)作为参数
- 本例实现过程
- 添加 Spring aop 支持 AspectJ 依赖 spring-aop aspectjrt aspectjweaver
- 编写拦截规则的注解 注解:注解本身没有功能,和xml一样。注解和xml都是一种元数据,元数据:即解释数据的数据,这就是所谓的配置。注解的功能来自于使用这个注解的地方。
- 编写使用注解的被拦截类
- 编写使用方法规则被拦截类
- 编写切面
- 编写配置类
- 运行