最近在学习spring boot ,所以博客之
1.spring的模块
spring是模块化的,它的每一个模块都对应一个jar包
(1)核心容器(core container)
Spring-core:spring框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
spring-beans:是Ioc容器实现的最初形态,深入理解spring beans模块有助于加深对IoC容器的认识,而基于web应用的IoC容器Application又是构建与BeanFactory之上的
spring-context:构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。
spring-context-support:这个jar 文件包含支持UI模版(Velocity,FreeMarker,JasperReports),邮件服务,脚本服务(JRuby),缓存Cache(EHCache),任务计划Scheduling(uartz)方面的类。外部依赖spring-context, (spring-jdbc, Velocity, FreeMarker, JasperReports, BSH, Groovy, JRuby, Quartz, EHCache)
spring-expression:spring的表达式语言。
(2)AOP
spring-aop:这个jar 文件包含在应用中使用Spring 的AOP 特性时所需的类和源码级元数据支持。使用基于AOP 的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。外部依赖spring-core, (spring-beans,AOP Alliance, CGLIB,Commons Attributes)
spring-aspects:提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。
(3)消息(Messaging)
spring-messaging:对消息框架和协议的支持
(4)WEB
spring-web:这个jar 文件包含Web 应用开发时,用到Spring 框架时所需的核心类,包括自动载入Web Application Context 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。
spring-webmvc:这个jar 文件包含Spring MVC 框架相关的所有类。包括框架的Servlets,Web MVC框架,控制器和视图支持。当然,如果你的应用使用了独立的MVC 框架,则无需这个JAR 文件里的任何类。
spring-webmvc-portlet:spring自己实现的一个类似Spring MVC的框架。包括一个MVC框架和控制器。外部依赖spring-web, Portlet API,(spring-webmvc)。
(5)数据访问/集成
spring-JDBC:这个jar 文件包含对Spring 对JDBC 数据访问进行封装的所有类。外部依赖spring-beans,spring-dao。
spring-TX:封装了spring对事务的控制。
spring-ORM:这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar包。
spring-OXM:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换。
spring-JMS:为简化jms api的使用而做的简单封装。 外部依赖spring-beans,spring-dao,JMS API。
2.spring生态
(1)、spring Framework(Core):spring项目的核心。Spring Framework中包含了一系列的IoC容器的设计,提供了依赖反转模式的实现。同时,还集成了AOP功能,包含了其他Spring的基本模块,如MVC,JDBC,事务处理模块的实现。
(2)、spring Web Flow:构件在Spring MVC基础上,相对于Spring Framework(Core)独立发展的。定义了一种特定的语言来描述工作流,同时高级的工作流控制器引擎可以管理会话状态,支持AJAX来构件丰富的客户端体验,并且提供对JSF的支持。
(3)、spring BlazeDS Integration:提供Spring和Adobe Flex技术集成的模块。在Spring BlazeDS Integration项目中,为Flex前端和后台的通信提供了和Spring开发模式一致的编程模型。
(4)、spring Security:是广泛使用的基于Spring的认证和安全工具,(Acecgi框架)
(5)、spring Security OAuth:为OAuth在Spring上的集成提供支持。OAuth是一个第三方的模块,提供一个开放的协议的实现,通过这个协议,前端桌面应用可以对Web应用进行简单而标准的安全调用。
(6)、spring Dynamic Modules:可以让Spring应用运行在OSGi的平台上。通过OSGi平台,增加了应用在部署和运行时的灵活性。Eclipse就是构建在OSGi的平台上。
(7)、spring Batch:提供构建批处理应用和自动化操作的框架。
(8)、spring Integration:体现了“企业集成模式”的具体实现,并为企业的数据集成提供解决方案。Spring Integration为企业数据集成提供了各种适配器,通过这些适配器来转换各种消息格式,并帮助Spring应用完成与企业应用系统的集成。
(9)、spring AMQP:是为Spring应用更好的使用AMQP(高级消息队列协议)的消息服务而开发的。使在Spring应用中使用AMQP消息服务器变得更为简单。这个项目支持Java和.net两个版本。
(10)、spring .NET:.NET开发人员通过它可以在.NET环境中使用Spring的IOC容器,以及AOP等
(11)、spring Android:提供一个在android应用环境中工作,基于java的REST客户端
(12)、spring Mobile:基于spring MVC构建,为移动终端的服务器应用开发提供支持,如:使用Spring Mobile可以在服务器端自动识别连接到服务器的移动端的相关设备信息,从而为特定的移动端实现应用定制。
(13)、spring Social:Spring框架的扩展,可以帮助Spring应用更方便的使用SNS。
(14)、spring Data:为Spring应用提供使用非关系型数据的能力