传统我们写代码一般会在每个方法的最前面都加入校验权限,这种方式属于硬编码,对原有的代码是有侵入的。
面向切面是一种编程范式,对面向对象来说是一种互补关系,能将特定代码进行拦截分离,实现代码无侵入。
先来了解一下软件平台常见的几种分离方式:
(1)水平分离:展示层 -> 服务层 -> 持久层;
(2)垂直分离:模块划分(业务上的分离),比如订单、库存等;
(3)切面分离:分离功能性需求与非功能性需求
PS:常见的非功能性需求有:权限控制、日志、异常处理、缓存控制、事务控制、性能监控、分布式追踪
AOP使用过程:
(1)使用注解方式@Aspect声明类;
(2)定义@Pointcut进行拦截(有多种匹配方式,理解一下原理,现场现用即行 );
(3)通过@Before或@After添加你想要执行的操作;
后面继续更新。。。
我很菜,做了两年程序员,到现在还没写过一个切面。
但我勇于承认自己的不足,把基础学好,才能学到更多的知识,年薪20W不是梦