Spring Beans переживет перезапуск приложения? - PullRequest
0 голосов
/ 12 декабря 2011

У меня здесь очень и очень странная проблема.У меня есть настольное приложение, написанное с Spring 3.0.5-Release и Java 6.0.Я также использую Swing для пользовательского интерфейса.

При запуске приложение считывает файл application-context.xml и создает оттуда экземпляр компонента конфигурации, например:

<bean id="config" class="my.blabla.Configuration">
    <property name="port" value="5555"></property>
    <property name="user" value="myUser"></property>
</bean>

В моем приложенииЯ использую свойства этого компонента конфигурации.

Теперь проблема заключается в следующем:

Я упаковываю приложение в jar-файл и внедряю его на компьютере.Я выполняю следующие шаги:

  1. В application-context.xml я изменяю свойство user на userA .
  2. Теперь я запускаю приложение.Все отлично работает.В лог-файле свойство пользователя показывает userA .
  3. Я закрываю приложение .

  4. Вapplication-context.xml Я изменяю свойство user на userB .

  5. Я запускаю приложение.НО В свойствах файла журнала user отображается userA .

Еще несколько сведений.Это не происходит, когда я отлаживаю приложение.Он появляется только тогда, когда приложение упаковано и выполняется из командной строки.Я закрываю свое приложение с помощью кнопки закрытия по умолчанию и установил это:

 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

Есть идеи, что здесь происходит?Есть ли шанс, что весенние бобы каким-то образом переживут перезапуск приложения?Есть ли вероятность, что Java-процесс не завершится?

Я схожу с ума.Любая помощь высоко ценится.

1 Ответ

2 голосов
/ 12 декабря 2011

Работаете ли вы из файла JAR? Является ли контекст приложения XML в этом файле JAR? Вы воссоздали JAR после изменения bean-компонента с userA на userB? Это объясняет таинственное поведение.

Spring beans не переживают перезапуск, так же как и любое значение в памяти. Ваши ожидания не соответствуют действительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...