在Spring 4 MVC应用程序中,我注意到在Controller层中使用了@Transactional
注释。但在许多地方,建议在服务层(服务实现类)中使用。
在@Transactional
课程中使用@Controller
有什么好处?
另外,我有一个服务层实现类,它将数据更新到数据库,我注意到如下所示使用Transaction属性
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
readOnly = true,当方法使用find或从数据库中获取一些数据时使用。 但是使用readOnly = true,服务层无论如何都能够保存数据。 我的应用程序使用Spring 4 + Hibernate 4.2.20。
应用程序使用的事务管理器
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager" >
<property name="sessionFactory" ref="sessionFactory" />
</bean>
使用&#34; readOnly = true
&#34;在事务内部是否可以将数据保存到数据库?
答案 0 :(得分:0)
没有理由在@Controller中使用注释@Transactional。
有一个简单的理由不这样做:最佳实践。 @Controller不应该知道MVC逻辑中的数据持久性,只知道服务层。
Spring也建议不要只为某些方法注释整个类,这也是一个很好的做法,因此你可以轻松地保存你的应用程序。