就是公共部分抽取出来作为一个单独的工程是吧?
我们这边有个类似的情况:a、b两个工程,涉及的公共逻辑在p里。不过最终打包的时候,会打成a、b两个系统,a、b会分别包含p部分。如果一定要以3个系统来发布,感觉应该考虑a、b以action的方式调用p,或者p提供的公共逻辑发布成webservice,供a、b调用。嗯,能想到的就这两个方案了。
我们这边有个类似的情况:a、b两个工程,涉及的公共逻辑在p里。不过最终打包的时候,会打成a、b两个系统,a、b会分别包含p部分。如果一定要以3个系统来发布,感觉应该考虑a、b以action的方式调用p,或者p提供的公共逻辑发布成webservice,供a、b调用。嗯,能想到的就这两个方案了。
1、总体打包为 ear;公共jar放在根APP-INF\lib 里面;项目专有jar放在项目目录的WEB-INF\lib里面。
2、公共jar直接放入启动中间件的CLASSPATH中;影响面适中,看怎么管理中间件的。
3、公共jar直接放入JAVA目录的lib\ext里面;影响面较大,慎用。
如果你的公共jar里面大量的static成员,而且还不是常量,又或者自行实现了单例(而不是借助Spring来实现单例),你对于共用这些所谓公共jar要超级谨慎。
看从什么角度来分析了。一般是:中间件(Tocmat)管理应用(WebApp),应用中使用了容器(Spring),Spring管理组件(Jar中的类)。
所以用Spring来管理应用,确实不合理,我3楼说的也都跟Spring没有直接关系。但是如果你把自己的应用认为是一个主应用(或者说平台系统),然后用Spring去加载其它子应用(或者说子系统),那么Spring就可以帮你管理应用。甚至你可以直接写个console程序,然后用Spring容器管理你的程序对外提供WebService啥的。不过上述不是重点。你在4楼说:“其实这里不是2个不同项目,只是把一个项目,每个模块分离出来做成可拔插的方式调用,请问这样Spring可以实现吗”。我理解这其实就是一个应用内,你打算高度构件化(模块化)设计开发,这个Spring在进行模块化集成装配上,本来就是它的优势之一啊。
所以用Spring来管理应用,确实不合理,我3楼说的也都跟Spring没有直接关系。但是如果你把自己的应用认为是一个主应用(或者说平台系统),然后用Spring去加载其它子应用(或者说子系统),那么Spring就可以帮你管理应用。甚至你可以直接写个console程序,然后用Spring容器管理你的程序对外提供WebService啥的。不过上述不是重点。你在4楼说:“其实这里不是2个不同项目,只是把一个项目,每个模块分离出来做成可拔插的方式调用,请问这样Spring可以实现吗”。我理解这其实就是一个应用内,你打算高度构件化(模块化)设计开发,这个Spring在进行模块化集成装配上,本来就是它的优势之一啊。
你的项目其实并不是想的那样war包之类。
基本可行设计是这样:
1、你要开发一套基本框架,作为基盘框架
2、你以后发布的应该是rar等一些压缩包
3、然后靠解压来实现通用。
spring、h、s他们都不要重新的启用服务器,因为要重新的去加载