在开发java程序的时候通常都会选择几种开源框架作为基础,什么都自己开发且不说自己有没有那个能力,就是有也不应该。但是在选择框架的时候往往会碰到版本问题,第一是各个框架之间的搭配问题,另一个就是在一个框架内部一些辅助jar包的版本问题,关于这样问题只能靠平时搜集整理,要说具体研究也不好说,这次开发需要使用spring与strutrs2就以这个为起点开始整理。
1. Spring、struts2、iBatis3搭配关系
Struts2打算使用2.2.3版本,因为在struts2的网站上说此版本是2.2系列中最好的一个版本用原话说就是"best available",此版本包括一体发布与独立发布(源代码、例子、文档、纯jar包),此版本搭配的各jar包的详细情况如下图所示:
从上面的jar包版本中可以看出在职struts2.2.3发布时使用spring版本是2.5.6,另外还有几个版本要注意:xwork使用的是2.2.3(xwork从2.1.3以后进行过一次较大调整),ognl使用的是3.0.1是一个较高版本,如果需要让struts2运行起来最少的依jar包有如下8个(喀,依赖的包越来越多了,不喜欢):
struts2-core-2.2.3.jar
xwork-core-2.2.3.jar
ognl-3.0.1.jar
freemarker-2.3.16.jar
javassist-3.11.0.GA.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-fileupload-1.2.2.jar
集成所需要的粘合剂一般用由xwork提供,并重新由struts2包装过的struts2-spring-plugin-2.2.3.jar插件来完成.如果需要启动spring容器(这不是废话)就必须要通常日志器接口
commons-logging-XXXX.jar, 如果日志使用log4j则最少支持jar可能包含以下清单(共12个):
struts2-core-2.2.3.jar
xwork-core-2.2.3.jar
ognl-3.0.1.jar
freemarker-2.3.16.jar
javassist-3.11.0.GA.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-fileupload-1.2.2.jar
struts2-spring-plugin-2.2.3.jar
spring-2.5.6.jar
commons-logging-1.1.1.jar
log4j-1.2.15.jar
通常情况下使用spring其中的AOP功能会被使用,这时需要添加三个包,分别为:
aopalliance-1.0.jar
asm-3.1.jar
cglib2.2.jar
注意上面三个jar测试我是在spring3.0.5版本下测试的
如果你还需要启动标注型切面定义,则还需要
aspectjrt.jar
aspectjweaver.jar
2.apache与subversion的版本搭配
通常apache2.0系列可以用来与subversion1.4集成,而apache2.2系列与subversion1.4通常有兼容性问题尤其是window下;apache2.2通常与subversion1.6系列版本集成