shiro 拦截文件 上传

spring事务开启后 数据库数据能被修改么?

spring事务开启后,数据库数据能被修改, 关于某操作中开启事务后,动态切换数据源机制失效的问题,暂时想到一个取巧的方法,在Spring声明式事务配置中,可对不改变数据库数据的方法采用不支持事务的配置。

这意味着只要使得spring事务的功能开启失效后,就能使得数据库的数据被修改。

对单纯查询数据的操作设置为不支持事务,可避免一些动态数据源切换失效的场景。如本人在Shiro权限管理开发中,所有的前台页面需要通过jsp的shiro权限控制标签控制页面的一些显示效果,此时很可能因业务需要,查询显示的数据和控制权限的数据不在同一数据库中,需要动态切换数据库链接,页面初始化显示的数据,对应的都是查询数据的操作,判断当前用户是否有权限,也是查询权限资源的操作,故而私认为可选择上面的取消查询操作的事务支持,即可避免动态切换数据源失效的情景。

出现多数据源动态切换失败的原因是因为在事务开启后,数据源就不能再进行随意切换了,也就是说,一个事务对应一个数据源。

利用这一点,就能够尝试去破坏数据源,从而实现修改。

那么传统的Spring管理事务是放在Service业务层操作的,所以更换数据源的操作要放在这个操作之前进行。也就是切换数据源操作放在Controller层,可是这样操作会造成Controller层代码混乱的结果。故而想到的解决方案是将事务管理在数据持久 (Dao层) 开启,切换数据源的操作放在业务层进行操作,就可在事务开启之前顺利进行数据源切换,不会再出现切换失败了。

1. 能够被修改。
2. 因为Spring事务的开启并不会阻止对数据库数据的修改操作。
Spring事务的作用是保证一组操作要么全部成功提交,要么全部失败回滚,以保持数据的一致性和完整性。
在事务提交之前,对数据库数据的修改操作是可以执行的。
3. 但是需要注意的是,如果在事务提交之前发生了异常或者事务被回滚,那么对数据库数据的修改操作将会被撤销,数据库中的数据将恢复到事务开始之前的状态。
因此,在使用Spring事务时,需要谨慎处理事务的提交和回滚,以确保数据的正确修改。

到此,以上就是小编对于shiro拦截路径的问题就介绍到这了,希望这1点解答对大家有用。

本文标题:shiro 拦截文件 上传
标题网址:http://www.shufengxianlan.com/qtweb/news37/452237.html

成都网站建设公司_创新互联,为您提供外贸建站微信小程序网站建设python网站改版企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联