EJB3.1 新Feature抢先关注

xiaoxiao2026-08-11  29

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。 相关资源:EJB 3.1 Cookbook
转载请注明原文地址: https://www.6miu.com/read-5051024.html

最新回复(0)