调用@Singleton bean 的方法

Calling a method of a @Singleton bean

在Java SE中,我曾经这样调用单例实例方法:

MySingleton.getInstance().method();

现在,在 Java EE 8 中,我有一个 @Singleton bean。如何调用方法?我必须在调用者中注入 Singleton 实例吗?

@Singleton
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
public class MySingletonBean {

  @Lock(LockType.WRITE)
  public void method() {
    // .....
  }

}

Do I have to inject the Singleton instance in the caller?

是的,这是首选方法。

随心所欲

@Inject
private MySingletonBean name;

JEE 中的 Singleton 是一种 Session bean。这意味着,您可以使用 @EJB 注释注入它。

@EJB
private SingletonBean singleton;