在Spring中,@Transactional服务应该是单例的。
@Transactional注解用于标记一个方法或类需要进行事务管理。当一个被@Transactional注解标记的方法被调用时,Spring会在方法开始前开启一个事务,并在方法执行完毕后根据方法的执行情况决定是提交事务还是回滚事务。
在Spring中,默认情况下,被@Transactional注解标记的服务是单例的。这意味着每次调用该服务的方法时,都会使用同一个事务。这样可以确保在一个事务中的多个方法调用之间保持一致性。
然而,有时候我们可能需要在每次调用服务方法时都创建一个新的事务,而不是共享同一个事务。这种情况下,可以将@Transactional注解放在类级别上,而不是方法级别上。这样每次调用服务方法时,都会创建一个新的事务。
总结起来,@Transactional服务在Spring中默认是单例的,但可以通过将注解放在类级别上来实现每次调用都创建新的事务。具体选择哪种方式取决于业务需求。
领取专属 10元无门槛券
手把手带您无忧上云