2015-04-25 3 views
1

Недавно я начал изучать java EE (jsp, сервлеты и некоторые шаблоны для работы с базой данных, например DAO), и я не понимаю, где я должен инициализировать логику bussines? Я думаю, что создание экземпляров в теле do *** методов сервлетов - плохая практика. Постскриптум мое приложение использует DataSource и ConnectionPool для подключения к db.WebApp. Java EE. Где я должен инициализировать свою бизнес-логику?

+0

Какой прецедент и что у вас есть? – SMA

+0

См. Мой ответ, я бы сказал, поиск загрузки сервлета при запуске, ServletContextListener и EJB startup и singleton. – MrSimpleMind

ответ

1

Необходимо указать свое требование как-то, какую инициализацию вы ищете. Это решение EJB? Чистое решение для сервлета/JSP? и т. д.

Обычно при развертывании приложения после вызова приложение загружает требуемую логику.

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

В EJB мы говорим о @Singleton и @Startup аннотациями.

Для сервлета вы можете использовать аннотацию @WebServlet (name = "startup", loadOnStartup = "0"). Или поместите его в свой web.xml. Зависит от того, как вы кодируете.

Более рекомендуемым способом является создание собственного слушателя и переопределение методов contextInitialized и contextDestoryed. Например. создать db-соединение и т. д. в инициализированном методе и отменить регистрацию драйвера в методе contextdestory. Используйте аннотацию @WebServletContextListener или добавьте слушателя в свой web.xml

Также существуют определенные решения веб-сервера Java, вам необходимо проверить своего поставщика.

+0

Спасибо, много! Очень информативный ответ! – nzeshka

Смежные вопросы