我刚刚听说在JavaEE容器中生成自己的线程是一种不好的做法。自几个月前开始学习JavaEE 6开发以来,我已经这样做了一段时间。我一直在做的是:
1.)从Web应用程序的主入口点(实现ServletContextListener的对象),
2)我创建了几个线程,以使用contextInitialized方法为Web应用程序后端运行一些异步后台任务。
3)我用contextDestroyed方法清理资源。
有更好的方法吗?如何在不产生线程的情况下创建异步后台任务?不使用线程的原因是什么?
我正在使用EJB 3.0和JavaEE6
最佳答案
手动生成线程确实是一个坏习惯,因为您希望Java容器在应用程序代码外部为您管理线程池。为此,JavaEE 6具有一个称为@Asynchronous的注释,而Oracle具有official tutorial。