- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在带有 @Controller
、@Service、@Repository
的 Spring 3 MVC Web 应用程序场景中,如果我用 @Transactional
注释 @Service
类,并将 bean 的范围保留为 Singleton,那么在并发访问的情况下,事务管理器会阻塞服务方法吗?
在单例的情况下,由于应用程序上下文中在任何时间点都会有一个 Service 类的实例,因此不同线程对已在事务内执行的同一服务方法的后续请求需要等到服务方法完成处理,请告诉我这是否属实。
我刚刚开始研究 Java EE 6,其中 @Stateless EJB 用于服务类,并将其与 Spring 中的完成方式进行比较。
最佳答案
@Transactional 指定方法代码在事务中执行。有不同的事务隔离级别,根据底层数据存储指定方法的行为(@Transactional 注解的隔离属性)。
此隔离级别是指底层数据存储,而不是方法。
最激进的隔离级别是可序列化的:一个常量,指示防止脏读、不可重复读和幻读。此级别包括 ISOLATION_REPEATABLE_READ 中的禁止,并进一步禁止这样的情况:一个事务读取满足 WHERE 条件的所有行,第二个事务插入满足该 WHERE 条件的行,并且第一个事务重新读取相同的条件,并在第二次读取中检索附加的“幻影”行。 ( http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/transaction/annotation/Isolation.html#SERIALIZABLE )
如果你想限制对此方法的访问,也许你应该简单地使用synchronized关键字。
关于java - Spring单例@Transactional并发访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503106/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!