Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка убития класса сервером, типа finally, но для класса 
:(
    Опции темы
Се ля ви
Дата 2.5.2005, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 8
Всего: 127



Оказался в странной ситуации. По логике задачи было лучше перенести определённый функционал связаный с простенькими типовыми запросами к БД в статический класс, т.е. класс, у которого конструктор ваще заприватен и методы все статичные.
Там в статическом блоке инициализации у меня открываются конекты к БД и с ними происходит работа.

Всё бы ничего, но теперь меня мучает совесть - а хорошо бы закрыть эти конекты как-то. Был бы это не класс, а объект - использовал бы finalize() или destroy() для сервлета, но тут - даже не знаю. Определён в Java какой-нибудь статический метод связанный с выгрузкой класса?

Это сообщение отредактировал(а) Се ля ви - 2.5.2005, 21:17


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Гость_serge
Дата 3.5.2005, 10:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Можно воспользоваться шаблоном проектирования Singleton:
Код

public class Singleton {
  private Singleton singleton;
  private Singleton () { }
  private clean () { }
  public static Singleton getSingleton() {
    if (singelton == null)
      singleton = new Singleton ();
    return singleton;
  }    
  public static destroy () {
    if (singleton != null)
      singleton.clean ();
    singleton = null;
  }
}

Класс конечно окажется загружен, но ресурсы освободятся.
PS: Выгрузить класс как-то можно, ведь tomcat должен выгузить старую версию jsp после компиляции на лету новой версии.

  Вверх
Domestic Cat
Дата 3.5.2005, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Можно еще выгрузить класс, но имхо проблема того не стоит .


--------------------

PM   Вверх
Се ля ви
Дата 3.5.2005, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 8
Всего: 127



Гость_serge сенкс!
Зарегистрировался бы - я бы плюс поставил smile


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
simanyay
Дата 3.5.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: 3
Всего: 36



Кстати finalize лучше не использовать, поскольку никто не знает когда будет уничтожен объект и поэтому нет гарантии, что все ресурсы будут выгружены вовремя. Джошуа Блох (Effective Java) рекомендует делать методы, которые будут вызваны явно (e.g. File.close()).


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Zandr
Дата 4.5.2005, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 433
Регистрация: 16.7.2004
Где: Новосибирск

Репутация: 9
Всего: 13



Цитата
Кстати finalize лучше не использовать, поскольку никто не знает когда будет уничтожен объект и поэтому нет гарантии, что все ресурсы будут выгружены вовремя.

Абсолютно верно. Кроме того, нет никакой гарантии, что finalize() вообще когда-нибудь будет вызван. Если тебе нужно отработать задание при завершении приложения, смотри Runtime.addShutdownHook( Thread job)

Это сообщение отредактировал(а) Zandr - 4.5.2005, 07:14
PM MAIL   Вверх
Се ля ви
Дата 4.5.2005, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 8
Всего: 127



simanyay
Zandr
Вроде у тигрёнка это исправили, я слышал от знакомых, что теперь этот метод равносилен деструктору С++... По крайней мере, что он рано или поздно вызовется, можно быть уверенным.


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
batigoal
Дата 4.5.2005, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата
По крайней мере, что он рано или поздно вызовется, можно быть уверенным

Просто это "поздно" может быть сколь угодно поздно...


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
simanyay
Дата 4.5.2005, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: 3
Всего: 36



Цитата(Lamer @ 4.5.2005, 13:31)
Просто это "поздно" может быть сколь угодно поздно...


вот про это я и говорю


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0988 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.