EJB3.1 新Feature抢先关注

EJB3.1 新Feature抢先关注

      伴随着 EJB3.1 Final Draft的Release,EJB3.1马上就要进入最终版了,今天让我们来看看EJB3.1给我们带来的新的Feature。

     1. 取消接口
         EJB Container 直接公布java Bean的Public方法,客户端使用通过@EJB 注入。

     2.  引入Singleton sinession bean.
          通过@Singleton标记该Session Bean为Singleton。在该Container只有一例。
          对于Singleton Session Bean的并行访问问题,有两种控制机制CMC(Container-managed concurrency) 容器管
理的并行机制和
         BMC(Bean-managed  concurrency),Bean 管理的并行机制。默认容器管理并行机制。
         在并行访问的控制上,使用了Read and write 机制,通过@Lock(READ) @Lock(WRITE)。默认为WRITE机制,方法
只能并一个
         Client访问。

   3.Asynchronous 调用
     EJB3.1激动人心的Feature。通过@Asynchronous是该方法可以异步调用。在Client端,通过JDK Concurrency 包的
Future模式  
    (Future<V>)来异步调用EJB3.1容器异步方法。

  4.规范了 JNDI names
   以往,不同的Vendor有不同的定义,现在统一了,格式如下:

  java:global[/<app-name>]/<module-name>/<bean-name>[!<fully-qualified-interface-name>]

  package net.blogjava.vincent;

@Singleton

public class BeanA { (...) }

下面的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 提供了编程和注释两种机制提供类似Linux Cron服务。
比如下面的定义:
@Stateless
public class MyTimeEJB {

    @Schedules(
    {    @Schedule(hour="13"),
         @Schedule(hour="20")
    } 
    public void MyTimeEJB (Timer timer) { (...) }

}

 

   6.推出EJB Lite EJB容器简化版

   EJB 3.1 简化版包括 features:

    * Stateless, stateful,singleton session beans. 只支持Local的异步调用。
    * Container-Managed Transactions and Bean-Managed Transactions.
    * Declarative 和 programmatic security.
    * Interceptors.
    * Deployment descriptors.


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

 


 8.嵌入式 Embeddable EJB Containers

A Java SE 应用了启动一个嵌入式的EJB Containr来开发测试EJB。

 

 


 

你可能感兴趣的:(EJB3.1 新Feature抢先关注)