我一起使用@Singleton和@Startup注释来创建一个长时间运行的进程。通过使用这些注释,我可以安全地假设我的进程将是一个完全异步运行的单个线程吗?
答案 0 :(得分:1)
你可以在类级别使用这些注释,所以我不确定你引用了什么'进程'(@PostConstruct方法?)
我不记得EJB 3.1规范的任何部分讨论了所需的异步单例初始化。
4.8.1单身人士初始化:
(...)bean开发人员可以选择配置Singleton 急于初始化。如果启动注释出现在 单例bean类(...)容器必须在应用程序启动序列期间初始化Singleton bean实例。容器必须初始化所有这些 在任何客户端请求发送到之前,启动时单例 应用程序中的任何企业bean组件。
它取决于Application Server供应商他选择的初始化技术。 我不会假设加载会在单独的进程中发生,而只是在服务器启动期间和服务客户端之前发生。
从评论中输入: 如何为您的单例初始化EJB调用耗时的操作提供单独的异步EJB方法呢?