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 就跟它的环绕非常相似。它通常管理日志、安全、事物這些程序不太在意,但又特别需要的代码。
我写这块的主要原因是因为,我感觉这两块特别难,以后我肯定有更深的理解,到时候希望能够再从這里得到启发。
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 就跟它的环绕非常相似。它通常管理日志、安全、事物這些程序不太在意,但又特别需要的代码。
我写这块的主要原因是因为,我感觉这两块特别难,以后我肯定有更深的理解,到时候希望能够再从這里得到启发。
相关文章推荐
- Java-Map
- Java-Map
- spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)
- Java [Leetcode 110]Balanced Binary Tree
- 详解Spring MVC 4常用的那些注解
- 查看java类是从哪个包加载
- 在spring MVC的controller中获取ServletConfig
- SSL介绍与Java实例
- Selenium+java环境搭建
- Android with Eclipse - Waiting for HOME ('android.process.acore') to be launched?
- java图片加水印文字
- java中遍历Map集合的集中方法总结
- java 多线程(1) join() / interrupt() 打断sleep() / stop() / run() / 线程停止的方法
- Java基础学习笔记5
- java.lang.OutOfMemoryError
- 关于java Udp收发数据异常的笔记
- spring.xml等xml文件的注解解读
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- nested exception is java.lang.NoSuchFieldError: TRACE
- Java Mail(三):JavaMail发送文本邮件换行