代码之家  ›  专栏  ›  技术社区  ›  Bozho

EJB的快速/自动加载/启动时加载EJB(在JBoss上)

  •  20
  • Bozho  · 技术社区  · 16 年前

    ejb似乎是延迟加载的——无论何时访问。

    但是,我想急切地初始化它们—即每当容器启动时。这是如何实现的(特别是JBoss)

    This topic 提供了一些提示,但不太令人满意。

    2 回复  |  直到 16 年前
        1
  •  23
  •   Brett Kail    16 年前

    从EJB3.1开始,可以通知单例bean模块的启动和停止:

    @Singleton
    @Startup
    public class StartupBean {
        @PostConstruct
        private void postConstruct() { /* ... */ }
    
        @PreDestroy
        private void preDestroy() { /* ... */ }
    }
    

    在EJB3.1之前,没有标准的、只有EJB的解决方案。我建议您在EAR中添加一个WAR,并使用servlet上下文侦听器。

        2
  •  18
  •   Arjan Tijms Mike Van    13 年前

    根据Adam Bien的真实世界JavaEE模式-重新思考最佳实践(参见 summary of the patterns )而服务启动模式,确实如bkail所说

    • 在此之前,唯一标准且可移植的方法是使用ServletAPI,例如,HttpServlet在其init()方法中启动EJB,并在web.xml中将load-on-startup设置为1。