這篇文章的內容主要圍繞EJB3.1新特性有哪些進行講述,文章內容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!
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
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模塊。如下圖:
8.嵌入式EmbeddableEJBContainers
AJavaSE應用了啟動一個嵌入式的EJBContainr來開發測試EJB。
感謝你的閱讀,相信你對“EJB3.1新特性有哪些”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。