关于web应用的static变量

对于web应用中的一个static变量,会不会被同一tomcat下的其他web应用共享,即在tomcat里面对于多个web应用中的同一种类,只有这一个static变量

等了一个晚上居然没人回答,这个问题是我在上传图片时,有两个应用,都通过spring部署了一个上传文件的util,在第一个应用的上传中,跟踪进去居然看到的static变量的值被第二个应用的路径覆盖了,所以我认为是不同应用也是共享同一个static变量。在上传的图片却放在第一个应用配置的文件夹中,真是奇怪啊!!

是的,静态和单太都是邪恶的,这篇文章已经在Jdon以前帖子充分讨论,静态和单态变量实际是JVM共用一个实例,JVM里面装JavaEE服务器如tomcat, tomcat中再运行多个应用,如果这几个应用共用一个静态或单态状态,那么这个静态或单态状态对不同应用是透明的,是公用的。这相当危险。

所以,JVM这个范围的单例其实不符合我们要求的全局变量,我们要求的全局变量其实是某个项目scope范围内的变量,并且这个变量(准确叫对象)应该是随着我们的项目部署而存在,随着项目销往而消亡,也就是说对象的生命周期应该是我们项目的生命周期,这才是我们脑子里需要的真正“全局变量”,所以,按照传统意义的全局变量是在Java这样对象世界不存在的。