Spring框架大体介绍(一)
目录
四, 数据访问/集成(Data Access/ Integration)
Spring的整体架构
Spring 是于2003年兴起的一个轻量级的java 开源框架,Spring是一个全面的解决方案,它坚持一个原则:不从新造轮子。已经有较好解决方案的领域,Spring绝不重复性实现,比如:对象持久化和OR映射,Spring只对现有的JDBC,Hibernate等技术提供支持,使之更容易使用,而不做重复的实现。Spring框架有很多特性,这些特性由7个定义良好的模块构成。
Spring 框架是一个分层架构,它 包含一系列的功能要素,并被分为大约20个模块,如
一, 核心容器(Core Container)
包含模块 spring-core, spring-beans, spring-context, spring-
context-supprot
,spring-exxpression
- spring-core 主要包含Spring框架基本的核心工具类。
- spring-beans 是框架的基础部分,提供 Ioc (控制反转) 和依赖注入特性。这里的基础概念是 BeanFactory,它提供对Factory 模式的经典 实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
- spring-context 即Spring上下文容器,它是BeanFactory功能加强的一个子接口,构建与
Core
和Beans
之上,继承了Beans的特性,扩展添加了国际化、时间传播、资源加载和对Context的创建和支持。ApplicationContext - spring-exxpression 提供 一个强大的表达式语言用于在运行时查询和操作对象,该语言支持设置/获取属性值,属性的分配,方法的调用,访问数组上下文、容器和索引器、逻辑和算是运算符、命名变量以及从Spring的容器中根据名称检索对象
二, AOP和Instrumentation
包含模块 spring-aop, spring-aspects, spring-instrument, spring-instrument-tomcat
- spring-aop 即,面向切面编程,它提供了与AOP联盟兼容的编程实现
- spring-aspects 提供了与
AspectJ
的集成 - spring-instrument 提供了类工具的支持与
classloader
的实现,以便在特定的应用服务上使用。 spring-instrument-tomcat
包含了spring对于Tomcat的代理
三, 消息(Messaging)
- spring framework 4 包含了spring-messaging模块,其中使用了来自于spring integration项目的关键抽象,如Message, MessageChannel, MessageHandler等,他们可以作为基于消息的应用服务的基础。该模块还包含了一组可将消息映射到方法的注解,类似于spring-mvc的编程模型.
四, 数据访问/集成(Data Access/ Integration)
包含spring-jdbc
, spring-tx
, spring-orm
, spring-oxm
, spring-jms
.
spring-jdbc
提供了JDBC抽象层,消除了冗长的JDBC编码和解析数据库厂商特有的错误代码.spring-tx
为实现了特定接口的类提供了可编程的声明式事务管理支持,对所有的POJOs都适用spring-orm
提供了对象相关映射(ORM)集成,包含JPA
,JDO
,Hibernate
,使用spring-orm
模块可以将这些框架与spring提供的特性结合在一起使用,比如事务管理.spring-oxm
提供了对Object/Xml Mapping实现的抽象,包括JAXB
,Castor
,XMLBeans
,JiBX
以及XStream
.spring-jms
包含了一些生产和消费消息的特性,从spring Framework 4.1
开始,提供了与spring-messaging
集成.
五, Web
包含spring-web
, spring-webmvc
, spring-websocket
, spring-webmvc-portlet
spring-web
提供了基于面向web集成的特性,如多文件上传功能、通过servlet listener初始化IoC容器与面向web的ApplicationContext
,它还包含了HTTP客户端与Spring远程支持的web相关的部分.spring-webmvc
(又名web-servlet
)包含了Spring对于Web应用的MVC与REST实现,Spring MVC框架提供了领域模型代码和Web表单之间的分离,并集成了Spring框架的所有其他特性.spring-webmvc-portlet
(又名web-portlet
)提供了基于Portlet环境使用MVC的实现.
六, Test
spring-test模块通过Junit或TestNG对spring的组件提供了单元测试和集成测试
七, 项目Demo地址
参考资料:https://blog.csdn.net/u010209217/article/details/80617310
参考资料: https://docs.spring.io/spring/docs/4.3.18.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/
Spring源码深度解析,(附代码示例 码云地址: https://gitee.com/Crazycw/SpringCode.git)
请看下篇: Spring源码深度解析,初始Spring源码(二)(附代码示例:)