Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ejbbean与springbean中方法调用的并发控制_Java_Spring_Ejb - Fatal编程技术网

Java ejbbean与springbean中方法调用的并发控制

Java ejbbean与springbean中方法调用的并发控制,java,spring,ejb,Java,Spring,Ejb,默认情况下,EJB容器序列化所有业务方法调用。我们有几个选择来改变它 应用@Lock(LockType.READ)/@Lock(LockType.WRITE)注释 或者在BEAN类上设置@ConcurrencyManagement(ConcurrencyManagementType.BEAN)注释,并使用我们的自定义同步策略(例如,如果BEAN只读取数据,则使用syncrnozied块或根本不使用锁)。在这种情况下,@Lock注释被忽略 我的问题是Spring如何控制它?默认情况下它是如何工作的

默认情况下,EJB容器序列化所有业务方法调用。我们有几个选择来改变它

  • 应用
    @Lock(LockType.READ)/@Lock(LockType.WRITE)
    注释

  • 或者在BEAN类上设置
    @ConcurrencyManagement(ConcurrencyManagementType.BEAN)
    注释,并使用我们的自定义同步策略(例如,如果BEAN只读取数据,则使用syncrnozied块或根本不使用锁)。在这种情况下,@Lock注释被忽略

  • 我的问题是Spring如何控制它?默认情况下它是如何工作的? Springbean可能是无状态bean,也可能有状态。它可以通过读或写操作访问某些资源。在不同的情况下,我需要一个控制并发性的选项


    您能否解释和比较EJB/Spring容器的这一方面。

    EJB声明性并发管理仅适用于单例会话bean,请参阅javax.EJB.ConcurrencyManagement API。常规会话bean没有线程安全问题,因为containter确保在任何给定时间只有一个线程访问bean实例。至于Springbeans并发性不是由容器管理的,程序员自己应该注意它