【问题标题】:Are No Interface View (@LocalBean) EJB beans initialized at server startup是否在服务器启动时初始化了没有接口视图 (@LocalBean) EJB bean
【发布时间】:2012-10-01 13:38:57
【问题描述】:

我正在使用 Glassfish 服务器。 @LocalBean 似乎在服务器启动时被初始化。对于其他 bean,它们在查找时正确初始化。这是 LocalBean 的正确行为吗?

【问题讨论】:

  • 提醒一下:如果 bean 没有实现任何业务接口并且没有有 LocalBean,LocalBean 会为您提供相同的视图。

标签: java-ee-6 glassfish-3 ejb-3.1


【解决方案1】:

没有规则说@LocalBean 应该被急切地初始化而其他人不应该。由容器提供者决定何时应该初始化特定的 bean。

在初始化 bean 时唯一可以控制的情况是使用 @Singleton EJB 和 @Startup 注释。这将强制容器提供者在服务器启动期间创建单例 bean 的实例。这是放置初始化逻辑的好地方。

对于 Glassfish,您观察到的行为可能是正确的,但我不会对此进行转发,因为其他容器提供商可能会选择不同的方法。

【讨论】:

  • 是的,我的错。当 EJB 服务器第一次启动时,它可能会创建一些无状态 bean 实例并将它们输入到 Method-Ready Pool 中。
  • 没错。而@LocalBean 并不是一种特殊的 EJB——它只是一种特殊的视图,所以它不会改变 EJB 的语义。
猜你喜欢
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
相关资源
最近更新 更多