加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

注释 – @Singleton在java EJB中

发布时间:2020-12-15 00:04:31 所属栏目:Java 来源:网络整理
导读:我有一个EJB需要是一个单一和有状态的,因为它将成为一种连接池.我的问题是: 如果我使用@Singleton注释定义一个EJB,那么默认情况下是否有状态,还是必须用@Stateful来定义它? 可以使用@Stateless注释吗? 试图找到一些关于这个但没有运气的文档,所以任何知识
我有一个EJB需要是一个单一和有状态的,因为它将成为一种连接池.我的问题是:

>如果我使用@Singleton注释定义一个EJB,那么默认情况下是否有状态,还是必须用@Stateful来定义它?
>可以使用@Stateless注释吗?

试图找到一些关于这个但没有运气的文档,所以任何知识的人都可以分享你的智慧,也许一两个链接.

解决方法

EJB tutorials显示EJB可以是单例或状态或无状态.我从来没有尝试使用这些注释中的一个以上,但我相信,正确的做法是只使用其中的一个.

从该链接:

Singleton session beans maintain their state between client
invocations

所以,你的问题:

if I define a EJB with @Singleton annotation will it then be stateful by default or do I have to define it with @Stateful also?

如果对于状态,你意味着维持其状态的能力,答案是:是的,一个Singleton将默认状态.

请记住,有一些特殊情况,Singleton不像Singleton那样表现出来,请阅读这个article.一般来说,如果您不在群集之外,并且避免使用默认构造函数,则不会运行此类风险:您需要始终使用EJB引用将其注入到另一个EJB或Web客户机中:

@EJB MyEJB myEJB;

最后,看看关于EJB生命周期的Java EE 6教程的this部分,解释了有状态和其他EJB之间的主要区别是容器在其生命周期中被钝化的能力.这个区别是严格来说,“单身人士默认状态”这个说法是不正确的主要原因,但在你的问题的背景下是正确的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读