当前位置: 首页 > 知识库问答 >
问题:

EJB无状态初始化模式

汝臻
2023-03-14

我有一个EJB无状态会话Bean。我有以下要求:

  1. 这个无状态EJB应该在启动时初始化
  2. 初始化代码应该对数据库进行事务性访问

问题是:

  1. @Startup仅适用于@Singleton EJB
  2. @PostConstruct注释(至少在WebSphere上)在这一点上没有事务性上下文,所以初始化代码在这里爆炸!

可能的解决方案?

  1. 使用JavaEE定时器,但它似乎是为周期性执行而设计的。我只想在零点执行一次。
  2. 仅为初始化目的使用@Singleton@Startup EJB,并将此单例EJB注入到依赖的无状态EJB。

问题:

  1. 有人能解释它应该如何初始化无状态EJB吗?还是没有意义?我的意思是,无状态EJB应该没有初始化状态?)
  2. 是否有任何模式表明使用辅助EJB@Singleton和@Startup是一个好主意?

共有3个答案

束向荣
2023-03-14

初始化代码应该对数据库进行事务性访问。

我不清楚数据库访问是什么,但如果您需要获取一些数据并将其存储为无状态bean的属性,请记住以下几点:

>

  • 此信息将复制到每个无状态实例中。

    每次创建新的bean实例时,都将执行数据库查询。

    在某些情况下,很难确保所有bean实例都具有相同的状态。

    我不知道模式的名称,但将信息存储在单例会话bean中,并将其注入无状态会话bean中,这是一个很好的解决方案。即使是单例bean也可以管理simultaneos请求,因此,它不会成为瓶颈。它还允许您以更一致的方式管理可能的信息更改。

  • 巫马泰
    2023-03-14

    初始化无状态EJB没有意义,因为这是JavaEE容器的工作。此外,JavaEE 6提供了IOC模式本机。IOC基本上意味着隐藏注入的资源的初始化过程。

    你的2。解决方案是正确的,因为您需要事务性访问。

    那么你需要考虑两种情况/状态:

    a、 辛格尔顿正确地开始了

    b、 singleton在启动时失败

    换句话说,您确定您的(1.)语句是正确的吗?或者您可以用懒惰启动模式来解释它?

    由于@startup是在应用程序启动时发生的,所以单例上具有惰性init激活的状态是否也符合您的需要?

    明安阳
    2023-03-14

    最后,我选择了:

    • EJB@Stateless——引用--

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

     类似资料:
    • 本文向大家介绍react-native 初始化状态,包括了react-native 初始化状态的使用技巧和注意事项,需要的朋友参考一下 示例 您应该像这样在组件的构造函数内部初始化状态: 使用setState可以更新视图。

    • 一方面,我有一个CronScheduler类,用于每个应用程序启动一次,配置一个TimerService。 另一方面,我有一个繁重的任务(注释为),我想在计时器的中调用该任务。请注意,在计时器中,我创建了一个调用的线程 代码: 结果是被多次调用。注释工作正常吗?

    • 我有两个React组件,即和使用了一些重要的UI组件,但我相信它们与我的问题无关。 在,使用effect调用,该函数解析为一个类别数组,例如,。 我的目标是访问父组件()中复选框的状态(选中或未选中)。我采取了这个问题中建议的方法。(见验证答案) 有趣的是,当我记录

    • 我正在尝试实现EJB命令来通信两个jsf项目。 我创建了一个EAR,其中有我的两个jsf项目+ejb。

    • 我们试图构建一个用例,其中来自流的数据通过计算公式运行,但公式本身也应该(很少)是可更新的。从阅读文档来看,在我看来,Flink broadcast state自然适合这种情况。 作为一个实验,我构建了一个简化的版本:假设我有一个整数流,第二个流包含这些整数的乘法因子(我可以随意发送值)。第二个流的频率很低,很容易在事件之间的几天或几周内出现。目前,这两个都实现为简单的套接字服务器,最终产品将使用

    • 场景:EjbA和EjbB都是远程无状态会话bean。 对b的这些方法调用中的任何一个都可以发生在集群环境中的不同节点/VM上,这是否正确? 甚至连对method1的调用? 我的意思是,如果一些客户端调用方法foo,是否会发生这样的情况:在这个事务中,在node1上调用方法1,下一个对方法1的调用,在同样的foo()调用期间,转到node2上的Ejb实例? 解释下面引用的"Enterprise Ja