这篇文章的内容主要围绕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新特性有哪些”这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注创新互联网站!小编会继续为大家带来更好的文章!