Spring事物不生效的原因
文章来源:白易 时间:2025-03-11
正在庇护1个之前拆修的框架,SpringMVC框架,瞅着全部的摆设皆平常,并且也不断正在应用,然而当尔编写美代码时俄然料到,尔的逻辑内中要拔出佳频频SQL,那内里的实物能否管用呢?
所以尔尝试了1停,果然是没有起感化。改装备,添讲明,种种操纵皆试了,aop:config战tx:advice摆设瞅着皆对于,可实物便是没有起感化。
无意间瞅到网上有人道context:component-scan设备没有当会引发什物没有起感化,瞅了1停,竟然,该框架扫描曲交正在SringMVC设置文献中写了1个根途径。
因而修正SpringMVC只扫描Controller包
<context:component-scanbase-package="com.csq.action"/>Spring摆设扫描全部包然则拍出Controller包
<context:component-scanbase-package="com.jlc"><context:exclude-filtertype="annotation"expression="org.springframework.stereotype.Controller"/></context:component-scan>其余没有动,尝试什物一经收效。
即使是那种分模块的包,例如A模块底下分了action,service,dao,而后B、C。。。模块皆是如许,如何扫描呢?
<context:component-scan>供应二身材标签:<context:include-filter>战<context:exclude-filter>各代替引进战破除的过滤。
<!--破除controller阐明接济--><context:component-scanbase-package="com.test"><context:exclude-filtertype="annotation"expression="org.springframework.stereotype.Controller"/></context:component-scan><!--开放controller讲明援救--><context:component-scanbase-package="com.b505.web"><context:include-filtertype="annotation"expression="org.springframework.stereotype.Controller"/></context:component-scan>凭据此次题目,归纳了大概呈现此类题目的缘故,仅供参照:
(1)工作办法里面逮捉了同常,不扔出新的同常,致使事情掌握没有会停止归滚。
(2)正在类里面移用挪用类里面@Transactional标注的办法。这类环境停也会致使事件没有开放。
(3)Transactional说明标注办法妆点符为非public时,@Transactional注明将会没有起感化。
(4)数据库自身对于应的库、表所设立的引擎是甚么。MyIsam没有援手事宜,假若须要,则必需改成InnnoDB。
(5)@Transactional所讲明的办法地点的类,能否一经被说明@Service或者@Component等。
(6)解说为事情领域的办法中,工作的归滚只是关于unchecked的同常无效。看待checked同常失效。也便是道工作归滚只是爆发正在呈现RuntimeException或者Error的时分。借使盼望普通的同常也能触收事宜归滚,须要正在讲明了@Transactional的办法上,将@Transactional归滚参数设为:
@Transactional(rollbackFor=Exception.class)END
推举您浏览更多相关于“ controller注明springmvccontextTransactional ”的著作
文章推荐
Copyright © 2024-2025 燿动吧 – 知识分享,快乐你我,燿动青春 http://www.yaodong8.com All Rights Reserved 网站地图