网络应用。javaee。我应该在哪里初始化我的业务逻辑?

网络应用。javaee。我应该在哪里初始化我的业务逻辑?,java,servlets,Java,Servlets,我最近开始学习JavaEE(jsp、servlet和一些用于像DAO一样使用数据库的模式),但我不知道应该在哪里初始化业务逻辑?我认为在do***servlet方法体中创建它的实例是一种糟糕的做法。另外,我的应用程序使用DataSource和ConnectionPool来连接数据库。您需要以某种方式指定您的要求,以及您需要的初始化。它是EJB解决方案吗?纯Servlet/JSP解决方案?等等 通常在部署应用程序时,调用后,应用程序将加载所需的逻辑 当然,您可以通过初始化来加速加载,在用户进入应用

我最近开始学习JavaEE(jsp、servlet和一些用于像DAO一样使用数据库的模式),但我不知道应该在哪里初始化业务逻辑?我认为在do***servlet方法体中创建它的实例是一种糟糕的做法。另外,我的应用程序使用DataSource和ConnectionPool来连接数据库。

您需要以某种方式指定您的要求,以及您需要的初始化。它是EJB解决方案吗?纯Servlet/JSP解决方案?等等

通常在部署应用程序时,调用后,应用程序将加载所需的逻辑

当然,您可以通过初始化来加速加载,在用户进入应用程序之前运行所需的代码等等

在EJB中,我们讨论的是@Singleton和@Startup注释

对于servlet,您可以使用注释@WebServlet(name=“startup”,loadOnStartup=“0”)。或者将其放在web.xml中。这取决于你如何编码

更推荐的方法是创建您自己的侦听器,并重写contextInitialized和contextDestoryed方法。例如,在initialized方法中创建db连接等,并在ContextStore方法中注销驱动程序。使用annotation@WebServletContextListener或将侦听器添加到web.xml中


此外,还存在Java web服务器特定的解决方案,您需要检查您的供应商。

用例是什么,您目前拥有什么?请参阅我的答案,我会说搜索启动时的Servlet加载、ServletContextListener和EJB启动以及singleton。