Как сделать первый мастер запуска с помощью Wicket? (Создание таблицы базы данных и т. Д.) - PullRequest
4 голосов
/ 19 июля 2010

Я работаю над веб-приложением Java с Wicket, Spring и Hibernate. Веб-приложение не очень большое (у меня есть один DAO и один сервис), но я бы хотел предложить пользователям, которые развернут приложение, мастер запуска, похожий на тот, который есть в Wordpress.

Когда к веб-странице обращаются в первый раз (таблицы базы данных не создаются / нет пользователей), я хочу, чтобы пользователь мог вводить настройки базы данных (имя пользователя, пароль, имя базы данных, тип базы данных), а затем я хочу веб-приложение для создания всех таблиц, которые оно будет использовать.

Поскольку я новичок в Wicket и Java Web Development, я не уверен, как можно добиться этого. Обычно при взаимодействии с DAO (например, при создании пользователя) таблица базы данных создается по требованию (если она еще не существовала) - по крайней мере, для меня это выглядит так.

Есть ли способ извлечь SQL для объектов домена mye, которые мое приложение будет использовать через слой service-> DAO?

Прямо сейчас я настраиваю доступ к базе данных через фильтры; src / main / config / application-DEV.properties, например. Если я хочу использовать мастер, описанный выше, думаю, мне нужно будет отказаться от использования файлов свойств?

Любая помощь очень ценится.

1 Ответ

1 голос
/ 19 июля 2010

Я часто размышлял об этом, поскольку это стандартная практика во многих системах PHP / Perl, но кажется сложной в java / spring и т. Д.

Прежде всего: используйте wicket-extensions для мастерафункциональность

Что бы я тогда сделал, это просто, я бы объявил все свои bean-компоненты Spring как ленивые и использовал бы системные свойства для их настройки (с помощью PropertyPlaceHolderConfigurer).Я бы использовал мастер, чтобы получить эти свойства в первый раз, а затем записать их в хорошо известное место в файловой системе (БД было бы лучше, но это проблема курицы / яйца).Затем я инициализирую контекст приложения, используя системные свойства.

Проблема здесь в следующем: я не думаю, что существует портативный способ доступа к файловой системе из веб-приложения, я думаю, что каждый сервер приложений можетобрабатывать доступ к файловой системе по-разному, поэтому вам нужно быть осторожным.

...