jakarta-ee - EJB 无状态初始化模式

标签 jakarta-ee design-patterns architecture ejb-3.1

我有一个 EJB 无状态 session Bean。我有这些要求:

  • 此无状态 EJB 应在启动时初始化
  • 初始化代码应该对数据库进行事务访问

  • 问题是:
  • @Startup 仅适用于 @Singleton EJB
  • @PostConstruct 注释(至少在 Websphere 上)此时没有事务上下文,所以初始化代码在这里爆炸!

  • 可能的解决方案?
  • 使用 Java EE 计时器,但它似乎是为定期执行而设计的。我只想在零时间执行一次。
  • 仅将 @Singleton + @Startup EJB 用于初始化目的,并将此单例 EJB 注入(inject)相关的无状态 EJB。

  • 问题:
  • 任何人都可以解释如何初始化无状态 EJB 吗?还是没有意义? (我的意思是,无状态 EJB 应该没有初始化状态?)
  • 是否有任何模式表明使用辅助 EJB @Singleton 和 @Startup 是个好主意?
  • 最佳答案

    最后我选择了:

  • EJB @Stateless -- 引用 --> EJB @Singleton (与 @Startup )

  • 这样,我可以初始化服务请求所需的(共享和只读)状态或上下文。

    关于jakarta-ee - EJB 无状态初始化模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332544/

    相关文章:

    Java/EJB 3.0 CMT/JTA/MySQL/Hibernate - 事务不回滚

    java - eclipse和tomcat集成

    java - JBoss7 中过滤日志警告?

    java - JSONObject 使用单例

    c++ - 处理模板创建的更好方法?

    Android MVP解释

    java - Java EE 中的文件夹访问

    java - IntelliJ 可以自动创建装饰器类吗?

    java - 两个微服务之间的通信架构

    wcf - 如何在一项服务或 DAL 中使用多个数据库(MSSQL)?