面向切面编程

  1. 要解决的问题(背景)

有一些功能需要应用到程序的多个地方但是又不想在每个业务点明确的调用它,比如日志,安全和事务管理.

  1. 横切关注点

散布于应用中多处的功能被称为横切关注点,简单来说就是影响应用多处的功能,比如日志.

  1. AOP可以实现横切关注点和他们所影响的对象间解耦

[图:日志系统在各个业务流程中的位置]

面向切面编程的使用步骤:

`定义通用的功能`,`定义这个功能以何方式在何处用`

横切关注点可以被模块化为特殊的类,这些类被称为切面(aspect).

这样做可以使关注点集中到一个地方,其次业务代码更简洁,主要关注点和次要关注点的代码分开在不同的位置.

AOP相关的术语

莫非,这就是爱情

  1. 如果事情有两种可能,你不想要的越会发生。
  2. 带伞的时候不下雨,没带伞的时候下大雨。
  3. 有效的解决方案,都会带来新的问题。
  4. 事情永远做不完,但总有多的时间重做。
  5. 越不想遇到的人,越容易遇到。
  6. 要是一切看来顺利,一定有哪里出错了。
  7. 关键时候最需要的东西,偏偏不在手上。
  8. 穿高跟鞋那天,地上一定坑坑洞洞。
  9. 想找到一个人时,翻遍全世界都找不到他。
  10. 事情往往都没有表面上看起来那么简单。
  11. 即使相爱,总有一个不能在一起的完美理由。

以上内容摘抄自维基百科,不代表本人观点

JavaScript实现iframe获取父窗口URL

    url = window.top.document.referrer ; 
    url = document.referrer;
    url = window.top.location.href;
    if (window.parent) { 
        url = window.parent.document.referrer;
    } 

Nginx配置favicon.ico

环境:Nginx日志报错说找不到favicon.ico文件

修改Nginx的配置文件nginx/conf/nginx.conf

  1. 如果原来Nginx已经配置了 root /home/wwwroot,直接把favicon.ico文件放到root对应的目录下即可
  1. 也可以单独设置 favicon.ico文件的路径
    location ~ ^/favicon\.ico$ {
        root    /home/nginx-assets/img;
    }

这样把favicon.ico放到/home/nginx-assets/img也可以实现效果,如下图:

张国利博客