您好,欢迎您访问我们燿动吧 – 知识分享,快乐你我,燿动青春!

燿动吧 – 知识分享,快乐你我,燿动青春

                                          您现在的位置是:燿动吧 > IT技术 >

                                          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 ”的著作