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)来异步调用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.


  *Deploymentdetors.


7.简化EJBPackaging


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


8.嵌入式ddableEJBContainers


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


  

猜你喜欢

转载自squall140.iteye.com/blog/1491274