就是公共部分抽取出来作为一个单独的工程是吧?
我们这边有个类似的情况:a、b两个工程,涉及的公共逻辑在p里。不过最终打包的时候,会打成a、b两个系统,a、b会分别包含p部分。如果一定要以3个系统来发布,感觉应该考虑a、b以action的方式调用p,或者p提供的公共逻辑发布成webservice,供a、b调用。嗯,能想到的就这两个方案了。

解决方案 »

  1.   

    领导的意思 是把数据源之类的东西提取出来,和一些公共的jar包提取到一起,这可以实现吗?
      

  2.   

    公共jar包提取出来放到一起,让不同项目来调用,这个可以实现。公共jar包所生成的对象(实例),让不用项目来调用,这个也可以实现;不过非常不推荐。一个Spring容器管理两个不同项目的对象实例,也许能实现,但是超级不推荐。大致方法:
    1、总体打包为 ear;公共jar放在根APP-INF\lib 里面;项目专有jar放在项目目录的WEB-INF\lib里面。
    2、公共jar直接放入启动中间件的CLASSPATH中;影响面适中,看怎么管理中间件的。
    3、公共jar直接放入JAVA目录的lib\ext里面;影响面较大,慎用。
    如果你的公共jar里面大量的static成员,而且还不是常量,又或者自行实现了单例(而不是借助Spring来实现单例),你对于共用这些所谓公共jar要超级谨慎。
      

  3.   

    其实这里不是2个不同项目,只是把一个项目,每个模块分离出来做成可拔插的方式调用,请问这样Spring可以实现吗 谢谢 
      

  4.   

    这要咋解释呢?分包开发本身就是你自己程序结构上设计的问题,至于你用ivy还是别的啥工具去管理开发包,就随你的意了。Spring容器针对对象进行管理,用的就是注入的方式来实现类和模块间集成,天然支持你所谓的可插拔。当然如果你打算玩热部署那就是另一回事了。
      

  5.   

    当然不能。一个war就是一个应用,你需要的是应用容器(比如tomcat,weblogic、jbpss)。spring只是一个bean容器,管不了应用。
      

  6.   

    大神 他们说spring容器 管不了应用 这是真的吗
      

  7.   


    看从什么角度来分析了。一般是:中间件(Tocmat)管理应用(WebApp),应用中使用了容器(Spring),Spring管理组件(Jar中的类)。
    所以用Spring来管理应用,确实不合理,我3楼说的也都跟Spring没有直接关系。但是如果你把自己的应用认为是一个主应用(或者说平台系统),然后用Spring去加载其它子应用(或者说子系统),那么Spring就可以帮你管理应用。甚至你可以直接写个console程序,然后用Spring容器管理你的程序对外提供WebService啥的。不过上述不是重点。你在4楼说:“其实这里不是2个不同项目,只是把一个项目,每个模块分离出来做成可拔插的方式调用,请问这样Spring可以实现吗”。我理解这其实就是一个应用内,你打算高度构件化(模块化)设计开发,这个Spring在进行模块化集成装配上,本来就是它的优势之一啊。
      

  8.   

    我的意思 比如说 在一个WApp下 Spring容器导成一个war包 ,其他应用导成war ,其他应用能共享一个Spring War包的容器吗?看从什么角度来分析了。一般是:中间件(Tocmat)管理应用(WebApp),应用中使用了容器(Spring),Spring管理组件(Jar中的类)。
    所以用Spring来管理应用,确实不合理,我3楼说的也都跟Spring没有直接关系。但是如果你把自己的应用认为是一个主应用(或者说平台系统),然后用Spring去加载其它子应用(或者说子系统),那么Spring就可以帮你管理应用。甚至你可以直接写个console程序,然后用Spring容器管理你的程序对外提供WebService啥的。不过上述不是重点。你在4楼说:“其实这里不是2个不同项目,只是把一个项目,每个模块分离出来做成可拔插的方式调用,请问这样Spring可以实现吗”。我理解这其实就是一个应用内,你打算高度构件化(模块化)设计开发,这个Spring在进行模块化集成装配上,本来就是它的优势之一啊。
      

  9.   

    怎么不可以,别听上面人说。上面人没有做过没有这方面的思考。
    你的项目其实并不是想的那样war包之类。
    基本可行设计是这样:
    1、你要开发一套基本框架,作为基盘框架
    2、你以后发布的应该是rar等一些压缩包
    3、然后靠解压来实现通用。
    spring、h、s他们都不要重新的启用服务器,因为要重新的去加载
      

  10.   

    就是说要自己开发一个TOMCAT 来加载?
      

  11.   

    我只见过好几个不同的project。。但是最终也是一个war 发布。。spring管理几个war没见过。。在顶。。
      

  12.   

    我也是啊不懂了 听说要搞成SOA那样的