第四章面向切面的Spring横切关注点:在软件开发中,散布于应用中多处的功能被称为横切关注点.把这些横切关注点与业务逻辑相分离正式面向切面编程(AOP)要解决的问题.AOP是什么?1.是一种编程范式不是编程语言2.解决特定问题,不能解决所有问题3.是OOP的补充,不是替代AOP的初衷?DRY:Donotrepeatyourself水平分离:展示层->服务层->持久层-垂直分离:模块划分(订单、库存等)-SoC:SeparationofConcerns-切面分离:分离功能性需求与非功能性需求使用AOP的好处集中处理某一关注点/横切逻辑可以很方便地添加/删除关注点侵入性少,增强代码的可读性及可维护性AOP的应用场景权限控制缓存控制事务控制审计日志性能监控分布式追踪异常处理SpringAOP的配置方式XML配置和注解配置方式主要注解AspectJ注解@Aspect标注java类是一个aspect切面的AOP类这个类有如下两个方面组成@Pointcut和Advice@Pointcut:由pointcutexpression
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达式所表达的(在哪些类的哪些方法置入指定的代码)Advice:指定这些方法的置入时机(特定代码执行之前还是执行之后)Pointcutexpression3大组成部分:designators(指示器)---通过什么样的方式去匹配你想要的java的哪些类的那些方法||expression()…wildcards(通配符)解决一一列举某些类的繁琐操作operators(运算符)指定要扫描的方法既满足这种需求又满足另外的需求【详解】Spring基础12018年9月17日13:52SpringPage1【详解】wildcards(通配符)*匹配任意数量的字符+匹配指定类及其子类..一般用于匹配任意数的子包或参数operators(运算符)&&与操作||或操作!非操作符designators匹配方法->execution()****重点****匹配注解->@target()->@args()->@within()->@annotation()匹配包/类型->within()->bean()->target()匹配对象->this()匹配参数->args()匹配包/类型//匹配ProductService类里面的所有方法@Pointcut("within(com.imooc.service.ProductService)")publicvoidmatchTyoe(){}//匹配com.imooc包及子包下所有类的方法@Pointcut("within(com.imooc..*)")publicvoidmatchPackage(){}SpringPage2