Spring源码深度解析:Spring入门之,Spring整体架构spring100集

Spring源码深度解析:

Spring是2003年兴起的轻量级开源框架,作者是Rod Johnson,关于轻量级你可以理解成jar包的体积很小Spring中的jar包都只有几百kb,你也可以理解成占用的系统资源很小。所谓的框架(Framework):一个应用的半成品,一组组件,简单的来说是别人搭好的舞台你来表演,是整个或部分系统的可重复使用设计(比如Bean的产生,既然看到框架相信你也了解了反射机制,在以前我们需要不断地通过new或者使用反射机制创建对象,这框架的世界里,你就尽情的使用配置或者注解的方式直接使用对象吧!),表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。Spring使用JavaBean来完成以前只可能由EJB完成的事情。Spring的简单性、可测试性和松耦合都是其可以成为主流框架的基础。

Spring的整体架构:

java语言见名知意,我所说的见名知意并不是说看见名字你就能够了解它的本质,但是基本的含义却是能够看懂的。下面我将对这些模块进行简单的叙述。

(1)Core Container(核心容器):包含了Core 、Beans、Context、Expression Language。其中的Core和Beans是框架的基础部份。Core模块主要包含Spring框架基本的核心工具类,Spring的其他组件都要用到这个包里的类,以后你也可以在自己的应用系统中使用这些工具类。Beans模块是所有应用都要用到的,包含了访问配置文件,创建和管理Bean以及进行Inversion of Control(IoC)/Dependency Injection(DI)操作相关的所有类。Beans的基础概念是BeanFactory。Context模块构建于Core和Beans模块基础之上

,提供了一种类似于JDNI注册器的框架式的对象访问方法,ApplicationContext接口是Context模块的关键。Expression Language

模块:顾名思义提供了一个强大的表达式语言用于在运行时查询和操作对象。

(2)Data Access/Integration:首先希望你能够看一下上面的整体架构图,在这个模块中包含有JDBC、ORM、OXM、JMS和Transactions模块,在这里其实你应该想到框架这一部分功能应该是和数据打交道的了吧。JDBC模块提供了一个JDBC的抽象层,他可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码。这个模块包含了Spring对JDBC数据访问进行封装的所有类。ORM(Object Relation Mapper对象关系映射)模块在Hibernate,iBatis(MyBatis)等,提供了一个交互层,利用ORM封装包,可以混合使用所有Spring提供的特性进行O/R映射。OXM模块提供了一个对Object/XML映射实现的抽象层。JMS模块主要包含了一些制造消费信息的特性。Transactions模块支持编码和声明性的事务管理,这些事物类必须实现特定的接口,并且对所有的POJO(简单的java对象)都适用。

(3)Web:Web上下文模块建立在应用程序上下文模块之上的,为基于Web的应用程序提供了,所以Spring框架支持与Jakarta Struts的集成。Web模块:提供了基础的面向Web的集成特性。例如:多文件上传、使用Servlet listeners初始化IoC容器以及一个面向Web的应用上下文。Web-Servlet模块:web.servlet.jar该模块包含Spring的model-view-controller(MVC)实现。Web-Porlet模块:提供了用于Porlet环境和Web-Servlet模块的MVC实现。在此,可以意识到SpringMVC是Spring的一部分。

(4)AOP:AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现,它可以让你定义例如方法拦截器和切点,从而将逻辑代码分开,降低了他们之间的耦合性。Aspects模块:提供了对AspectJ的集成支持。Instrumentation模块:提供了class instrumentation支持和classloader实现,使得可以在特定的应用服务器上使用。

(5)test:Test模块支持使用JUnit和TestNG对Spring组件进行测试。

附赠spring100集:

Spring源码深度解析:Spring入门之,Spring整体架构spring100集

获取方式:

1.转发关注小编;

2.私信小编“资料”即可免费获取spring 100集。