【发布时间】:2011-12-12 10:33:48
【问题描述】:
我这里有一个非常非常奇怪的问题。我有一个用Spring 3.0.5-Release 和Java 6.0 编写的桌面应用程序。我还在 UI 中使用 Swing。
在启动时,应用程序读取一个application-context.xml 文件并从那里实例化一个配置bean,如下所示:
<bean id="config" class="my.blabla.Configuration">
<property name="port" value="5555"></property>
<property name="user" value="myUser"></property>
</bean>
在我的应用程序中,我正在使用此配置 bean 中的属性。
现在的问题如下:
我将应用程序打包成一个 jar 文件并将其部署在机器上。 我遵循以下步骤:
- 在
application-context.xml中,我将属性user 更改为userA。 - 现在我运行应用程序。一切运行良好。在日志文件属性中,用户显示 userA。
我关闭应用程序。
在
application-context.xml中,我将属性 user 更改为 userB。- 我运行应用程序。但是在日志文件属性 user 中显示 userA。
更多信息。调试应用程序时不会发生这种情况。它仅在应用程序被打包并从命令行执行时出现。 我通过默认关闭按钮关闭我的应用程序并设置了这个:
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
任何想法,这里发生了什么? spring bean 是否有可能在应用程序重新启动后以某种方式幸存下来?有没有可能java进程没有关闭?
我快疯了。非常感谢任何帮助。
【问题讨论】:
-
只是一个疯狂的猜测 - 旧的应用程序上下文是否被缓存在任何地方?检查打包文件中的应用上下文 - 也许会有所帮助。