2008年的5.1劳动节,SpringSource发布了策划已久的开源应用服务器-SpringSource Application Platform。JavaEye的新闻频道也有报道:
SpringSource 宣布发布 SpringSource Application Platform Beta
总体来说,Spring的Application Platform就是一个根据Rod Johnson自己对于Java企业应用开发的理解,自行制订了一套应用服务器的标准,并且开发了这样一个专用的应用服务器出来。但是Spring的应用服务器也有自己的一些特色,让我们简单看看:
这是Spring应用服务器的结构图。他的底层是用Equinox这个OSGi框架来搭建的,我们知道Equinox为底层框架搭建的应用软件还有Eclipse,他的特点是高度的模块化,可定制化和在线的部署和卸载,以及模块的版本管理、依赖管理等功能。
Spring在Equinox的基础之上开发了DMK这样一个框架,即动态模块内核(Dynamic Module Kernel),DMK封装了Equinox的很多底层操作,向上提供了更加方便的API和管理平台。
在DMK之上,所有的功能统统以模块的方式运行在DMK之上,例如Tomcat就是以模块的方式部署在Spring应用服务器上,此外还集成了应用发布模块、系统管理模块等等。所有的模块都可以以标准的方式部署到Spring应用服务器上面,具体模块的信息,可以看看Spring应用服务器的repository目录下面的文件。
Spring应用服务器给我的感觉和JBoss应用服务器很像。JBoss也是类似这样的结构,JBoss最核心的底层是JBoss Microkernel,即微内核,这个MicroKernel提供了JMX的接口,而JBoss应用服务器的所有其他功能,都是通过标准的JMX来插入到MicroKernel之上的,例如Tomcat、Hibernate3、EJB、Transaction,DB Pool等等,都是标准的SAR模块包。
他们之间比较大的不同在于Spring应用服务器底层使用的是OSGi结构来进行模块化的管理和部署,而JBoss使用的是基于JMX的模块化管理。使用OSGi的一大好处就是可以在线的热部署和卸载,并且可以提供良好的模块版本管理。
Spring应用服务器我从我初步的接触来看,我觉得有一些比较有特色的地方:
一、轻量级和模块化
Spring应用服务器本质上就是基于Equinox的Spring DMK,这DMK本身是很小的,在DMK上面可以部署各种各样的功能模块来扩展应用服务器的功能,模块化程度非常高,内核本身是很轻量级的。
看Spring Applicaiton Platform自己的文档上面说,如果去掉Tomcat模块的话,启动应用服务器只占15MB内存(能用来干啥?),其实目前Spring应用服务器并没有提供很多功能模块上来,只是一个web模块、一个部署模块和一个管理监控模块。但是计划在2.0版本增加更多的模块、例如群集支持模块、SOA模块等等。
二、在线的热部署和卸载
得益于Equinox,可以在服务器运行期增加功能模块、部署新的Web应用,或者更新、卸载Web应用,所有的这些操作都可以Online进行。这恐怕是比传统的Java应用服务器最领先的特色了。
三、库的版本管理和依赖
jar包的版本冲突和依赖是传统Java应用很头疼的一个方面,Spring应用服务器提出了自己的一套库版本管理和库依赖管理的机制,具体的原理我还没有仔细的研究,貌似也是利用了OSGi的功能。
总结:
Spring应用服务器和Spring框架并没有什么直接的关系。你用其他框架开发的Web应用也可以部署到spring应用服务器上来,只是Spring应用服务器提供了很多可能你觉得不错的功能,吸引你使用spring的应用服务器,而不是tomcat或者jboss。但是Spring应用服务器并不符合Java EE的标准,因此可以看成是一个完全无视JCP的应用服务器,也是Rod Johnson大胆甩开标准进军应用服务器市场的尝试。
分享到:
相关推荐
springsource-tool-suite-3.9.8 eclipse的spring组件 版本3.9.8 针对eclipse版本4.11
spring-tool-suite-3.9.5.RELEASE-e4.8.0-win32-x86_64
这里zip压缩包囊括了学习Spring过程中用到的所有的jar包; 有: commons-logging-1.2.jar spring-beans-4.0.4.RELEASE.jar spring-context-4.0.4.RELEASE.jar spring-core-4.0.4.RELEASE.jar spring-expression-...
sts安装包 spring-tool-suite-3.9.0.RELEASE-e4.7.0-win32-x86_64.zip
spring-framework-3.0.5.RELEASE-dependencies 好不容易找到了,赶紧分享一下 因为不能大于20M,共分了8个包,都是独立的,我列了目录,可以只下载需要的包,这是1号包: 1号包: edu.emory.mathcs.backport edu.oswego.cs....
spring-tool-suite-3.9.5.RELEASE-e4.8.0-win32-x86_64以及历史各版本的下载
spring-aop-4.0.0.RELEASE;spring-aspects-4.0.0.RELEASE;spring-beans-4.0.0.RELEASE;spring-context-4.0.0.RELEASE;spring-core-4.0.0.RELEASE;spring-expression-4.0.0.RELEASE;spring-jdbc-4.0.0.RELEASE;spring...
SpringSource-spring-data-document-examples-1.0.0.M4-MongoDB-Examples
官方原版源码 spring-framework-5.1.15.RELEASE.zip
对应eclipse版本的spring安装包
学习spring所需要的jars c3p0-0.9.1.jar com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar commons-logging-...
带有源码的SpringSource-spring-security-3.1.3.RELEASE-2-g6cea269.zip,将其attach到eclipse/MyEclipse中就可以查看源码了
spring-core-4.0.3.RELEASE-sources.jar (spring 4.0.3源码source),导入到Eclipse中进行查看。
spring-tool-suite-3.9.6,安装配置文档都有
spring-core-4.2.2.RELEASE-sources.jar (spring4.4.2源码source),导入到Eclipse或IDEA中进行查看。
spring-core-3.2.7.RELEASE-sources.jar (spring 3.2.7源码source),加载到Eclipse里面进行源码查看。
spring-core-4.0.0.RELEASE-sources.jar (spring 4.0.0源码source),加载到Eclipse里面进行源码查看。
其tc服务器此次也提供了全新的开发者版本,可以免费供开发者下载,用于调试其Spring应用。 Spring 3.0中,新的表达式语言名叫Spring Expression Language(SpEL,直译就是Spring表达式语言)。Shaun将其描述为...
spring-core-3.1.0.RELEASE-sources.jar (spring 3.1.0源码source),导入到Eclipse里面进行查看。
spring-core-3.2.0.RELEASE-sources.jar (spring 3.2.0源码source),加载在Eclipse里面进行源码查看。