http://www.iteye.com/topic/1123081
上面这个网站(iteye)是国内学习spring非常棒的网站之一。
一、IOC
IOC,即控制反转,由IOC容器实现IOC功能,可以将类和雷之间的依赖、创建、拼接、管理、获取的工作用配置的方式来完成,而不必用户自己创建类的代码,目前该配置文件采用xml文件。说的简单点就是:之前自己手动不用框架写项目,大部分的类和大部分的耦合关系都是自己设计,自己来写代码,其中有很多固定的、繁琐的代码,而spring有个叫IOC容器的工具,它可以通过解析配置文件的方式来帮我们创建好这些类和类之间的依赖,并且负责管理这些类,帮程序员来写那些和业务无关的,重复固定的繁杂代码。以前这部分类由程序员自己创建,现在通过IOC来创建和控制,所以叫做控制反转。
二、AOP
面向切面编程,是横切逻辑编程的思想。怎么来的呢?必然有它的底层支持,那就是java在java5.0之后引入了一个工具包:java.lang.instrument,允许在JVM启动时启用一个代理类,通过该代理类在运行时修改类的字节码,就是java文件编译为了class文件,已经在JVM中解释跑起来了,这是通过代理类还可以修改class文件,来改变一个类的功能,很强大的特性吧!
三、数据访问和集成
这一部分功能是面向DAO层,整合各种持久层框架,对各种数据访问技术进行了薄层封装,隐藏了模式化代码,使得DAO层数据形式和访问技术无关的统一,那么到底是怎样封装的呢?首先各种的访问数据代码都是需要做异常检查的,这些检查代码可能会不同,Spring将这些检查型异常转化成为非检查型异常,为整合各种持久层框架提供基础。
四、Web及远程操作、远程访问、Webocket
建立在Application Context模块上,提供了web应用的各种工具类,说白了就是通过Listener或Servlet这些基础技术初始化Spring的容器,将Spring容器注册到了Web容器中,所以说Spring关于Web的部分还是依赖Servlet技术,这是核心,同时该模块还提供了许多的web功能:透明化文件上传、Velocity、Freearker、XSLT等的支持,还有web开发的MVC框架(Spring MVC或可以整合其他MVC框架的功能)。
说起整合又不得不提起一个工业最重要的概念:标准化,正是标准化的大范围执行才为这些不论是开发框架还是其他的工具的产生奠定了基础。
WebSocket提供了一个在Web应用中高校、双向的通信,需要考虑到苦湖簖(浏览器)和服务器之间的高频和低时延消息交换
以上四点就是Spring框架主要做的事情,可以了解到,Spring开发框架的基础IOC和AOP,这两者贯穿于Spring的所有模块中,而Spring的模块又可以分为两大模块:1、数据访问;2、数据传输。这也是一般的web程序所要完成的核心功能。