spring 中的@transactional 服务应该是单例还是原型?
Should @transactional services be singleton or prototype in spring?
如果服务层 class 是单例,事务管理会在 spring 中成为问题吗?还是应该是原型?
不,这应该不是问题。 @Transactional
注解的作用是将事务生命周期绑定到当前线程。因此每个新线程将 运行 在一个单独的事务中。
因此,当您的方法被调用时,Spring 会将方法调用包装到事务中,因此在单线程上下文中,事务将启动并在调用成功时提交,然后回滚(取决于你的配置)如果抛出异常。
在多线程上下文中,每个线程将 运行 在一个单独的事务中。
如果服务层 class 是单例,事务管理会在 spring 中成为问题吗?还是应该是原型?
不,这应该不是问题。 @Transactional
注解的作用是将事务生命周期绑定到当前线程。因此每个新线程将 运行 在一个单独的事务中。
因此,当您的方法被调用时,Spring 会将方法调用包装到事务中,因此在单线程上下文中,事务将启动并在调用成功时提交,然后回滚(取决于你的配置)如果抛出异常。
在多线程上下文中,每个线程将 运行 在一个单独的事务中。