`
liulanghan110
  • 浏览: 1065776 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

对AOP的理解

    博客分类:
  • JAVA
阅读更多

说AOP前先说下代理。所谓代理,就是把东西交给代理来管理。如把房子交给房产中介来卖。这样房产中介就能做一些事情,比如给房子定价,打广告等。同样,可以将一个类交给代理管理,那么代理就可以对这个类做一些事情。spring就像这样的一个代理。当ACTION要某个服务层的类时,不用直接调用那个类。spring会将那个类给action。同样当页面向后台要action时,并不是直接找的那个action ,而是spring将那个类给页面。

 

这样将类交给代理(spring)管理有什么好处呢?

 

那就是便于管理。

 

想想,如果我有这样一个需求,在访问类时验证用户是否登录,没有登录不能访问,那么是不是要在每个类里面加入验证是否登录的方法?如果将类都交给代理(spring),只需要代理(spring)验证该用户是否登录,没有登录,则所有的类都不给它,是不是方便很多?

同样的,有这样一个需求。先更新一个表,成功后更新另一个表。如果中途出错,则两个表都不更新。这样,这两句可以做成一个事务。可是如果这样的需求很多,那是不是又得每个都加上事务?如果有了代理,那么代理可以给某些类统一的加上事务。比如,在所有update,delete ,insert开头的方法里加入事务。

 

上面所说的对某一类类或方法的统一的管理就是AOP,即面向切面的编程。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics