关于txAdvice
设置ead-only="true"为只读 这个过程是怎样的?
是执行了get开头的方法之后 那么这个方法就不能被修改之类的吗?
这样子设置的意义在哪里呢?是为了防止什么样的情况发生呢?
propagation="REQUIRED" 这个是新建事务吧?就是说不管运行哪个方法都会新建成事务对吧?
正在回答
同学是说的:
上图红框部分是吗?
其实道理是相同的,我们只是引用了id是transationManager 的事务管理器。例如我们还配置了,id是transationManager1 的事务管理器,到时候想用id是transationManager1 的事务管理器时,就可以直接把transaction-manager属性后边的值改成transationManager1 。这样我们的配置更加的灵活。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1、设置成只读的意义是防止你在匹配的以上方法中对数据库的代码进行修改,
因为我们一般把从表中查数据的方法会设置成 get**,find** 等,一般以这些开头的都是查询的方法,我们可以通过设置只读属性,只允许你去查,但是不能修改表中的数据。也就是说,你即使在get**的方法中不小心写了插入,更新等sql语句都不管用,因为我们设置了只读。
2、propagation="REQUIRED" 的意思同学说的是对的,其他的方法,我们让它必须用事物,也就是像同学说的给它新建一个事物。
3、
它的意思是我们对该数据源设置事物。
同学可以想象一下,我们正式的数据和测试的数据应该是存放在不同的数据库中的。
如果我们只像对其中的一个设置呢?都使用同一个Dao,但是我们可以分情景设置不同的数据源。
这里我们就可以对不同的数据源设置不同的事物。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星