springMVC+Mybatis 排坑
来源:互联网 发布:知乎扒皮密子君催吐 编辑:程序博客网 时间:2024/06/13 19:32
C++程序员,因业务需要,使用java搭建服务器,考虑一番后采用springMVC+Mybatis,针对遇到的坑做下分享。
本人使用的是Intellij IDEA,MAVEN,此为背景。
1,No qualifying bean of type [***] found for dependency
首先遇到的是这个问题,按照网上说的几乎所有的解决方式都不奏效,让我深陷在@Service, @Autowired, @Repository 中不能自拔,怀疑是自己对此不够熟悉导致做了蠢操作。
后来静下心,仔细看服务启动过程,发现一个致命问题:我的 spring-mybaitis.xml 怎么没显示加载??(诸如:[org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from class path resource 这种字样)
然后查看web.xml,坑爹的发现居然没真的没对它进行加载。。。
方式如下:
<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:spring-mybatis.xml </param-value> </context-param>
坑死若干脑细胞后,发现问题是 Mapping加载失败,加载失败的原因就是没找到。
首先mapper.xml 是存在的,并且名称和接口对应,没有问题。
其次XML文件中已经添加了
<context:component-scan说明系统已经努力去找了,那么说明还是找的地方不对!
我将自动搜索bean的xml代码屏蔽,使用指定bean的形式试了一下:
<bean id="*Mapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.*.*.*Mapper" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /></bean>成功咧。
然后查看target目录,诶?? xml居然不在!!
打包没打进去吗?
上网搜索了一下解决办法,在pom 中增加了一段代码:
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </resource> </resources>
重新启动,发现xml这回有了,但是错误依旧
然后我灵机一动做了个骚操作,大功告成。。
骚操作就是改了一下component-scan的位置,我以前一直以为应该查找代码所在的目录下(dao目录),后来发现其应该查找的是mapper.xml文件,修改成mapping就OK了。
此前还一直纠结mybatis生成的mapping 该放在src下还是resource下,其实对于我来说,只要打包能打进去放哪都一样,当然前提是系统能够找到它。
2,expected single matching bean but found 2
弹出这个错误,比第一个问题好解决多了,这个是由于@XXX 用错了导致的。
为此我总结了一下:
xxxController 前加 @Controller
服务的实现前(***Impl)加 @Resource
dao中的mapper 前加 @Repository
model中的类前加 @Component
service 接口什么都不加,再Impl实现中,类前加@Service, 然后在其中需要使用的数据库Mapper对象前@Autowired
- springMVC+Mybatis 排坑
- mybatis,springmvc
- springMVC +MyBatis
- springmvc+mybatis
- Springmvc+mybatis
- mybatis+springMvc
- springMVC+Mybatis
- SpringMVC+MyBatis
- springmvc+mybatis
- springMVC+mybatis
- springmvc+mybatis
- SpringMVC+MyBatis
- springmvc+mybatis
- springmvc+mybatis整合springmvc
- SpringMVC: 重拾springMVC+mybatis
- SpringMVC Mybatis学习资料
- spring+springmvc+mybatis+maven
- SpringMVC+mybatis+DWR3注解
- 【dlib代码解读】人脸关键点检测器的训练
- POJ 1236:Network of Schools
- linux 6
- 一篇文章读懂Java类加载器
- No JSON object could be decoded
- springMVC+Mybatis 排坑
- 设置servlet或action作为欢迎页面
- Dialog类型的二三级联动选择器
- JS回调函数全解析教程
- 冒泡排序 C++实现
- js设置30分钟后展示
- Git Extensions Resolving deltas: 100%卡住问题
- python爬虫获取强智科技教务系统学科成绩(模拟登录+成绩获取)
- 阿里云clouder认证—云服务器运维管理(理论基础)