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模块。如下图:
[img]http://www.blogjava.net/images/blogjava_net/vincent/img02.gif[/img]

8.嵌入式 Embeddable EJB Containers

A Java SE 应用了启动一个嵌入式的EJB Containr来开发测试EJB。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值