首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在spring中,@transactional服务应该是单例的还是原型的?

在Spring中,@Transactional服务应该是单例的。

@Transactional注解用于标记一个方法或类需要进行事务管理。当一个被@Transactional注解标记的方法被调用时,Spring会在方法开始前开启一个事务,并在方法执行完毕后根据方法的执行情况决定是提交事务还是回滚事务。

在Spring中,默认情况下,被@Transactional注解标记的服务是单例的。这意味着每次调用该服务的方法时,都会使用同一个事务。这样可以确保在一个事务中的多个方法调用之间保持一致性。

然而,有时候我们可能需要在每次调用服务方法时都创建一个新的事务,而不是共享同一个事务。这种情况下,可以将@Transactional注解放在类级别上,而不是方法级别上。这样每次调用服务方法时,都会创建一个新的事务。

总结起来,@Transactional服务在Spring中默认是单例的,但可以通过将注解放在类级别上来实现每次调用都创建新的事务。具体选择哪种方式取决于业务需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Spring的基本配置和Spring与Mybatis的整合

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IOC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架

    01
    领券