能举一个面向切面的例子么?(AOP),不要大段的理论。
用自然语言的。
谢谢

解决方案 »

  1.   

    最简单的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都切成了一个平面。
      

  2.   

    就是因为所有的object的method A都可以用同一个proxy处理。等于横向切了一刀,把所有的method A都切成了一个平面。
    这个应该怎么理解?
      

  3.   

    理解的很好啊。比如一个方法里头,有 事务,数据验证,异常捕获等等好多这样的信息。而且很多方法都有类似的代码块。这时候就可以抽取事务,异常捕获等等 事务
    异常处理
        业务代码
    异常处理
    事务用了AOP,我们就可以直接关注业务代码啦
      

  4.   

    简单来说AOP就是在现有存在的逻辑上加一层“切面”进行过滤,
    例如物理课上常说的加一个滤光片白色的光线过来,透过滤光片后去掉了绿色光线,这就是个类似的例子。软件上的例子就再举一个就是把所有来自客户端的HttpRequest拦截下来,加一个切面,判断这个HttpRequest是否是来自已经登录的或者具有特定权限的用户,于是决定是否要给正确的HttpResponse
      

  5.   

    难道 AOP就是为了让业务代码 和 事务代码 异常代码,等其他的代码 拆分开了咯?
    AOP 动态的加载类,有什么好处么? 这样不是速度变慢了么?
      

  6.   

    这样可以让  Action传过来的mehtod时候 经过 AOP时候,开启事务,让整个 过程 都在一个事务里面 ,保证了事务的隔离。处理完返回到 Servlet时候就把事务关闭。Proxy相当于一个门,你来了我就打开事务,走了就关上事务,就是一个切面而已。其解耦 也算是一个实现喽。
      

  7.   

    这里可以通过 invocationTargetHandler来进行对 Exception统一捕捉。log4j...