Pet*_*Fox 6 java singleton annotations java-ee-6
任何人都可以解释在Java EE 6应用程序中实现Singleton的完整过程吗?我假设我不应该以声明静态变量的典型方式创建单例并且应该使用@Singleton注释?我必须这样做吗?
这仅仅是一个声明它的情况@Singleton,就是这样吗?我还要上课了吗?
那么我需要做什么才能访问其他类中的单例?
这只是宣告@Singleton的情况吗?就是这样吗?
是! 而已!像任何其他Javabean一样设计类.
但请注意,这确实与GoF的Singleton设计模式不同.相反,它正是"只创造一个"模式.也许这就是你困惑的根源.不可否认,注释名称选择较差,在JSF和CDI中使用了名称@ApplicationScoped.
那么我需要做什么才能访问其他类中的单例?
与其他EJB一样,通过将其注入@EJB:
@EJB
private YourEJB yourEJB;
Run Code Online (Sandbox Code Playgroud)
该javax.ejb.Singleton注释用于指定企业 Bean 实现类是单例会话 Bean。
这个信息是告诉ejb容器,不要创建这个bean的多个实例,而只创建一个单例实例。否则它只是一个普通的 Bean 类。在这里阅读更多内容:
http://docs.oracle.com/javaee/6/tutorial/doc/gipvi.html
您不必创建静态变量,并执行所有相关操作以使其成为单例。只需编写一个普通的 bean,如此处所述,容器将只负责实例化它的对象:
@Startup
@Singleton
public class StatusBean {
private String status;
@PostConstruct
void init {
status = "Ready";
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11441 次 |
| 最近记录: |