gpt4 book ai didi

java - 将 EJB 作为参数传递给辅助类是错误的吗?

转载 作者:行者123 更新时间:2023-11-30 05:57:51 25 4
gpt4 key购买 nike

我现在需要创建一个缓存来存储某些需要从数据库更新的值。由于这个缓存需要是单一的,某种单例实现似乎是合适的。

问题是这个缓存还需要通过 EJB 访问数据库,这不能被注入(inject),因为缓存存在于上下文之外(是的,我期待 EJB3.1 中的@singleton 注释).

明显的解决方案是将 EJB 作为参数传递到缓存中,但在上下文之外传递 EJB 感觉不对,但我说不出原因。这是公认的做法吗?

最佳答案

请注意,您通常不会“在上下文之外”传递 EJB 本身。您通常传递的是“ stub ”。这个 stub 可以像任何其他普通对象引用一样传递。对它的任何调用都将重定向回 EJB 容器中的实际 bean 实例。

因此,如果您在 web 模块中有一个缓存,有一个注入(inject)了 EJB 的支持 bean(或执行 JNDI 查找)并将该引用传递给(静态)缓存,那么我看不出根本问题

出于所有意图和目的,@Singleton 注释确实是为这样的事情而创建的。希望您能尽快使用它 ;)

关于java - 将 EJB 作为参数传递给辅助类是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5076332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com