日期:2014-05-18  浏览次数:20684 次

一个Spring容器能否同时管理多个项目
公司想把 一个大项目分成多个模块 每个模块导成war包形式 放到服务器上,想要Spring容器剥离出来做一个公有的容器给每个模块调用 请问这个如何实现?如果不能实现能否说明一下原因 谢谢
------解决方案--------------------
公共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要超级谨慎。
------解决方案--------------------
当然不能。一个war就是一个应用,你需要的是应用容器(比如tomcat,weblogic、jbpss)。spring只是一个bean容器,管不了应用。