EJB3.1新特性一览 Time服务更强大

开发 后端
本文总结了EJB3.1中的一些新特性。其中,一直是EJB弱项的Time服务在这个版本中得到了增强。

1.取消接口

EJBContainer直接公布javaBean的Public方法,客户端使用通过@EJB注入。

2.引入Singletonsinessionbean.

通过@Singleton标记该SessionBean为Singleton。在该Container只有一例。

对于SingletonSessionBean的并行访问问题,有两种控制机制CMC(Container-managedconcurrency)容器管理的并行机制和

BMC(Bean-managedconcurrency),Bean管理的并行机制。默认容器管理并行机制。

在并行访问的控制上,使用了Readandwrite机制,通过@Lock(READ)@Lock(WRITE)。默认为WRITE机制,方法只能并一个

Client访问。

3.Asynchronous调用

EJB3.1激动人心的Feature。通过@Asynchronous是该方法可以异步调用。在Client端,通过JDKConcurrency包的Future模式

(Future)来异步调用EJB3.1容器异步方法。

4.规范了JNDInames

以往,不同的Vendor有不同的定义,现在统一了,格式如下:

java:global[/]//[!]

packagenet.blogjava.vincent;

@Singleton

publicclassBeanA{(...)}

下面的JDNI是都是合理的

-java:global/myapp/mybeans/BeanA

-java:global/myapp/mybeans/BeanA!net.blogjava.vincent

-java:app/mybeans/BeanA

-java:app/mybeans/BeanA!net.blogjava.vincent.BeanA

-java:module/BeanA

-java:module/BeanA!net.blogjava.vincent.BeanA

5.提供了更强大的Time服务。

这一块一直是EJB的弱项,使得Quartz成了主流。EJB3.1相对EJB3提供了编程和注释两种机制提供类似LinuxCron服务。

比如下面的定义:

@Stateless

publicclassMyTimeEJB{

@Schedules(

{@Schedule(hour="13"),

@Schedule(hour="20")

}

publicvoidMyTimeEJB(Timertimer){(...)}

}

6.推出EJBLiteEJB容器简化版

EJB3.1简化版包括features:

*Stateless,stateful,singletonsessionbeans.只支持Local的异步调用。

*Container-ManagedTransactionsandBean-ManagedTransactions.

*Declarative和programmaticsecurity.

*Interceptors.

*Deploymentdescriptors.

7.简化EJBPackaging

可以不用ear包,在war包允许包含EJB模块。如下图:

包含EJB模块 

8.嵌入式EmbeddableEJBContainers

AJavaSE应用了启动一个嵌入式的EJBContainr来开发测试EJB。

【编辑推荐】

  1. 关于EJB的一些常见问题
  2. JavaBean与EJB的区别与应用
  3. EJB初学者常见的12个困惑问与答
  4. Java语言中关于EJB技术的概论
  5. 漫谈EJB在Java中的应用
责任编辑:yangsai 来源: 网络
相关推荐

2011-12-16 09:24:53

JavaSpring开源框架

2011-05-26 10:27:37

Fedora 15

2013-10-18 14:23:21

Ubuntu 13.1Kbuntu 13.1

2010-07-20 10:19:06

Wine 1.2

2009-06-11 17:18:23

EJB3.1Singleton B

2013-11-26 10:00:09

VMware Hori虚拟化Wmware

2013-11-26 10:00:30

VMware Hori

2024-06-28 11:39:21

2018-09-12 10:17:51

微软Azure DevOpGitHub

2010-06-01 09:52:27

jQuery Tool

2012-01-12 16:16:20

Fedora 17特性规划

2017-09-22 14:04:33

前端Node.js新特性

2010-01-26 17:44:32

Visual C++开

2023-11-23 10:21:11

ECMAScriptJavaScript

2022-06-27 06:02:27

geopandas开发Python

2010-09-27 14:09:17

SQL Server服

2009-09-28 10:58:31

Google新搜索特性

2009-06-04 17:33:08

EJB 3.1EJB 3.0

2010-05-11 13:50:26

Scala

2013-06-13 10:14:33

点赞
收藏

51CTO技术栈公众号