EJB3.1新特性一覽 Time服務(wù)更強大
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調(diào)用
EJB3.1激動人心的Feature。通過@Asynchronous是該方法可以異步調(diào)用。在Client端,通過JDKConcurrency包的Future模式
(Future
4.規(guī)范了JNDInames
以往,不同的Vendor有不同的定義,現(xiàn)在統(tǒng)一了,格式如下:
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服務(wù)。
這一塊一直是EJB的弱項,使得Quartz成了主流。EJB3.1相對EJB3提供了編程和注釋兩種機制提供類似LinuxCron服務(wù)。
比如下面的定義:
@Stateless
publicclassMyTimeEJB{
@Schedules(
@Schedule(hour="20")
}
publicvoidMyTimeEJB(Timertimer){(...)}
}
6.推出EJBLiteEJB容器簡化版
EJB3.1簡化版包括features:
*Stateless,stateful,singletonsessionbeans.只支持Local的異步調(diào)用。
*Container-ManagedTransactionsandBean-ManagedTransactions.
*Declarative和programmaticsecurity.
*Interceptors.
*Deploymentdescriptors.
7.簡化EJBPackaging
可以不用ear包,在war包允許包含EJB模塊。如下圖:
8.嵌入式EmbeddableEJBContainers
AJavaSE應(yīng)用了啟動一個嵌入式的EJBContainr來開發(fā)測試EJB。
【編輯推薦】