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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проект Struts + Hibernate, Грамотная организация проекта 
V
    Опции темы
Alexis
Дата 9.11.2006, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Мне необходимо сделать проект Struts + Hibernate. Вроде по отдельности со всем разобрался, начальные знания и навыки получил. Только вот есть одна проблема. Примеров в сети достаточно, но грамотно организованных примеров мне найти не удалось. Почти везде лежат примеры где одна форма со Struts, вводишь в нее данные, а эти данные засовываются в базу с помощью Hibernate. Все исходники и маппинги валяются в одной куче. А хочется более полного, правильно организованного примера, который можно использовать как шаблон для своих проектов.

Я немного подумал, посмотрел примеры и решил сделать структуру:
пакет com.domain.project.actions – стратсовские экшены
пакет com.domain.project.beans – бины для объектов, которые хранятся в базе данных и маппинги к ним
пакет com.domain.project.dao – DAO для доступа к объектам, которые хранятся в базе данных. Содержат Hibernate зависимый код.
пакет com.domain.project.forms – Формы (классы наследуемы от ActionForm)
пакет com.domain.project.resources – Ресурсы (properties файлы, в которых хранятся локале-зависимые сообщения)
пакет com.domain.project.test – тесты
пакет  com.domain.project.util – Всякие утилиты. К примеру, класс HibernateUtil, который нагло выдран с книги Hibernate in Action (improving version of HibernateUtil).
Настройки (hibernate.cfg.xml, log4j.properties лежат в com.domain.project)
Экшены обращаются к DAO и сохраняют в запросе необходимые страницам объекты, которые щедро разбрасывают по страницы jsp. 
Кстати, нужно ли делать над DAO еще один слой? Скажем у меня есть ProductDao, который работает с Hibernate, и в котором есть методы для получения всех продуктов, добавления, удаления и т. п. Нужно делать еще, скажем, ProductManager, который будет работать над ProductDao или работать из экшенов с ProductDao?

Поскольку опыт у меня совсем небольшой, то очень хочется, чтобы дали ссылку на какой-нибудь комплексный пример Struts + Hibernate, который с вашей точки зрения, правильно и грамотно устроены. Или просто расскажите, как вы в общих чертах организуете свои проекты Struts + Hibernate, может быть покритикуете вышеизложенную структуру, желательно показать исходники. 
Сам я видимо плохо искал. Всяких книг, статей куча, а толку от них мало: рассказывают одно и то же, а в книгах, после этого рассказа начинают пересказывать документацию по Struts.

P. S. Писать мне необходимо именно на Struts + Hibernate и ничего другого не использовать.

PM   Вверх
Alexis
Дата 9.11.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Alexis @  9.11.2006,  16:09 Найти цитируемый пост)
Экшены обращаются к DAO и сохраняют в запросе необходимые страницам объекты, которые щедро разбрасывают по страницы jsp. 

В догонку еще один вопрос. В какой пакет лучше засунуть бины, объекты классов которых будут создавать экшены, которые служат для "подготовки" страницы.
К примеру, есть страница, которая выводит список всех продуктов. Я создаю бин Products, который будет хранить список продуктов. В какой пакет мне положить этот бин?
PM   Вверх
_and
Дата 10.11.2006, 06:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-developer
*


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

Репутация: 1
Всего: 4



Цитата

Я немного подумал, посмотрел примеры и решил сделать структуру:
пакет com.domain.project.actions – стратсовские экшены
пакет com.domain.project.beans – бины для объектов, которые хранятся в базе данных и маппинги к ним
пакет com.domain.project.dao – DAO для доступа к объектам, которые хранятся в базе данных. Содержат Hibernate зависимый код.
пакет com.domain.project.forms – Формы (классы наследуемы от ActionForm)
пакет com.domain.project.resources – Ресурсы (properties файлы, в которых хранятся локале-зависимые сообщения)
пакет com.domain.project.test – тесты
пакет  com.domain.project.util – Всякие утилиты. К примеру, класс HibernateUtil, который нагло выдран с книги Hibernate in Action (improving version of HibernateUtil).
Настройки (hibernate.cfg.xml, log4j.properties лежат в com.domain.project)
Экшены обращаются к DAO и сохраняют в запросе необходимые страницам объекты, которые щедро разбрасывают по страницы jsp. 
Кстати, нужно ли делать над DAO еще один слой? Скажем у меня есть ProductDao, который работает с Hibernate, и в котором есть методы для получения всех продуктов, добавления, удаления и т. п. Нужно делать еще, скажем, ProductManager, который будет работать над ProductDao или работать из экшенов с ProductDao?

ну насчет пакетов вариант не плохой, вот те еще пример размещения классов по пакетам
  •  com.domain.project.bo - собсно бизнес объекты и их маппинги
  •  com.domain.project.action - экшены
  •  com.domain.project.exception - исключения
  •  com.domain.project.forms - формы
  •  com.domain.project.resources - ресурсы
  •  com.domain.project.service - бизнес логика и сервисы для уровня ДАО
  •  com.domain.project.service.dao - собсно само DAO (тут сидят интерфейсы дао)
  •  com.domain.project.service.dao.hibernate - а енто уже реализация интерфейсов ДАО
Настройки хибернейта и логгера я бы положил в корень src 

PM MAIL ICQ Jabber   Вверх
Alexis
Дата 10.11.2006, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(_and @  10.11.2006,  06:21 Найти цитируемый пост)
вот те еще пример размещения классов по пакетам

Спасибо. Так и сделаю.
Цитата(_and @  10.11.2006,  06:21 Найти цитируемый пост)
Настройки хибернейта и логгера я бы положил в корень src 

Они там и лежат, просто я спутался  smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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