最简单的AOP就是日志本来Method A里要打印,Hello worldAOP用proxy把A包了一层。 然后在A调用之前打印,invoke before 调用之后打印,invoke after最后,你拿到proxy执行method A后,看到的就是 invoke before Hello world invoke after 了。。 这就是AOP。before和after就是两个切面。为啥叫切面的,就是因为所有的object的method A都可以用同一个proxy处理。等于横向切了一刀,把所有的method A都切成了一个平面。
然后在A调用之前打印,invoke before
调用之后打印,invoke after最后,你拿到proxy执行method A后,看到的就是
invoke before
Hello world
invoke after
了。。
这就是AOP。before和after就是两个切面。为啥叫切面的,就是因为所有的object的method A都可以用同一个proxy处理。等于横向切了一刀,把所有的method A都切成了一个平面。
这个应该怎么理解?
异常处理
业务代码
异常处理
事务用了AOP,我们就可以直接关注业务代码啦
例如物理课上常说的加一个滤光片白色的光线过来,透过滤光片后去掉了绿色光线,这就是个类似的例子。软件上的例子就再举一个就是把所有来自客户端的HttpRequest拦截下来,加一个切面,判断这个HttpRequest是否是来自已经登录的或者具有特定权限的用户,于是决定是否要给正确的HttpResponse
AOP 动态的加载类,有什么好处么? 这样不是速度变慢了么?