我这里有一个非常奇怪的问题。我有一个用Spring 3.0.5-Release
和Java 6.0
编写的桌面应用程序。我也在使用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>
在我的应用程序中,我正在使用此Configuration bean中的属性。
问题现在如下:
我将应用程序打包到jar文件中并将其部署在计算机上。 我按照以下步骤操作:
application-context.xml
我将属性用户更改为 userA 。 我关闭了应用。
在application-context.xml
我将属性用户更改为用户B 。
更多信息。调试应用程序时不会发生这种情况。它仅在从命令行打包和执行应用程序时出现。 我通过默认的关闭按钮关闭我的应用程序并设置了这个:
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
任何想法,这里发生了什么? Spring bean是否有可能在应用程序重启后不知何故?是否有可能java进程没有关闭?
我疯了。任何帮助都非常感谢。
答案 0 :(得分:2)
您是从JAR文件运行的吗?该JAR文件中的应用程序上下文XML是什么?将bean从userA
更改为userB
后,您是否重新创建了JAR?这可以解释这种神秘的行为。
Spring bean不会在重启后继续存在,不会超过任何内存中的值。你的期望与现实不符。