2014/08/16 记录
今天遇到个问题,折腾了我大约4个小时,好坑啊因为之前没遇到过
我的包是这么分的:com.工程名.模块名.service.impl 在spring 配置这个切面 execution(* com.工程名..*Impl.*(..)) 他 就是找不到com.工程名.模块名.service.impl下面的*Impl类
并且此配置就算配错了,他不报错,并且当我同时用junit测试,同时加载三个配置文件 springMVC.xml spring.xml spring-mybatis.xml 它有正常,一旦通过web初始化就出问题,如果web同时加载三个文件也不会出问题,当他这样配置时只会在日志文件中记录如下:
DEBUG - SqlSession [[email protected]] was not registered for synchronization because synchronization is not active
DEBUG - Fetching JDBC Connection from DataSource
DEBUG - JDBC Connection [[email protected]] will not be managed by Spring
DEBUG - ooo Using Connection [[email protected]]
DEBUG - ==> Preparing: select * from test where testid=?
DEBUG - ==> Parameters: 1(Integer)
DEBUG - <== Total: 1
DEBUG - Closing non transactional SqlSession [[email protected]]
DEBUG - Returning JDBC Connection to DataSource
当改成这样 execution(* com.工程名..*.*(..)) 然后一切恢复正常;并且将这个execution 的工程名随便改,他也不报错,可以访问数据库,日志就像上面一样
SqlSession 不能同步 连接代理不能被spring管理 并且他一样能够访问数据库,然后连接池还是有效,因为他的事务管理是失效的,所以不会回滚。所以对于我没系统学习mybatis的来说,耗费多时,今天记录一下,以防以后出错 ,希望遇到这个问题的开发者注意
SpringMVC+Mybatis架构中的问题记录,布布扣,bubuko.com