您的位置:首页 > 编程语言 > Java开发

springmvc开发--IOC和AOP

2016-01-12 17:53 295 查看
      我是一个菜鸟,以前学习structs都没有学好,这次由于实习接触到了一个项目,是用springmvc+mybatis+mysql编写的,我希望能够把我遇到的困难,和怎么把困难解决的,写到博客上,以便于以后我自己再遇到同样的问题可以查阅,也希望能够与大家一起学习进步。望大神指教。

      spring最重要的就是IOC(反转控制Inversion of Control)和AOP(面向切面编程Aspect Oriented Programming),其实我基本是不懂的,我只是了解到IOC其实就是通过配置,实现控制的反转,就相当于以前我们是自己写一个dao层接口,然后去写一个基本的实现类,然后业务逻辑层去调用这个抽象接口,实现松耦合。但是,除非我们能够一次性把所有的dao写完,不然我们还得去修改底层实现类。

    那么IOC能帮助我们什么呢?IOC能够完成反转,因此我们大概可以想到,反转应该就是不调用吧?对,反转就是我们可以通过容器(比如spring)来自动为我们生成DAO的实现类。这样就能够
4000
真正实现反转控制了。由此,我们可以在随时更换数据库的情况下,进行数据迁移,而不需要进行修改任何代码。

   同样的,AOP又是什么意思呢,顾名思义,应该是面向切面编程,大家应该知道OOP吧,就是面向对象编程。OOP定义了封装、继承以及多态,因此OOP就是定义了一种很严格的层次关系,让大家只能从上往下看,這样就会有很多的代码复用。而AOP呢,为了解决這个问题,他就利用了横向编程,从切面进入,将公共代码提取出来,进行代理,最后注入主程序。大概可能是這样吧。spring mvc的intercepter中的prehandle.postHandle,afterCompletion 就跟它的环绕非常相似。它通常管理日志、安全、事物這些程序不太在意,但又特别需要的代码。

    我写这块的主要原因是因为,我感觉这两块特别难,以后我肯定有更深的理解,到时候希望能够再从這里得到启发。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: