SpringMVC+Spring+Mybatis 环境搭建问题记录(注解开发)

实例演示如何以全注解的方式搭建SSM(Spring+SpringMVC+Mybatis)项目 在学习了《Spring实战》的一些章节后,我打算写一个项目来锻炼一下。在创建项目前,我希望用全注解的方式来开发。后来就知道,debug掉的头发,都是前期拍脑袋进的水——网上关于注解的资料也太少了吧!!! 经过千辛万苦后,我终于顺利完成了项目的搭建:) 概述 首先介绍一下这个SpringBlog项目: 本项目基于Spring+SpringMVC+Mybatis的技术框架,实现个人博客的登入登出、管理文章、在线编写和发布文章、浏览博客等基本功能。 在一步步搭建项目的过程中,你将学习到: DispatcherS 阅读详情

Exception:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'itemsController1': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.yrsoft.service.ILoginService com.yrsoft.controller.ItemsController1.service; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.yrsoft.dao.UserDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(mappedName=, shareable=true, description=, name=, type=class java.lang.Object, lookup=, authenticationType=CONTAINER)}

解决办法:web.xml中没有添加监听。加上如下代码:

<listener>  
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  </listener> 


Exception:UserDao无法注入到Service中
解决办法:没有将mapper和Dao关联起来。在spring的xml中添加如下代码:

<!-- 配置 mybatis的映射器 方式二:也可不指定特定mapper,而使用自动扫描包的方式来注册各种Mapper ,配置如下:-->   
	 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">       
     	 <property name="basePackage" value="com.yrsoft"/>   
     	 <property name="sqlSessionFactory" ref="sqlSessionFactory" />
		 <property name="annotationClass" value="org.springframework.stereotype.Component" />  
     </bean>

Exception:文件不存在:WEB-INF/applicationContext.xml

解决办法:一看好像是因为spring的xml路径不对。第一时间检查路径,文件是存在WEB-INF/classes/目录下的。而配置文件中也写的是classpath:applicationContext.xml。找了半天发现,加载文件写到servlet中去了。错误的地方应该写加载springmvc.xml的。而少了加载applicationContext.xml的配置。

错误配置:

<!-- Spring 前端控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- contextConfigLocation配置springMVC加载的配置文件(配置处理器、映射器、适配器等) -->
  	<!-- 默认加载/WEB-INF/SERVLET名称-servlet.xml(springmvc-servlet.xml) -->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:applicationContext.xml</param-value>
  	</init-param>
  </servlet>

正确配置:加上了context-param标签,并将applicationContext.xml移动到了该标签中加载。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!-- Spring 前端控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- contextConfigLocation配置springMVC加载的配置文件(配置处理器、映射器、适配器等) -->
  	<!-- 默认加载/WEB-INF/SERVLET名称-servlet.xml(springmvc-servlet.xml) -->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  </servlet>

Exception:org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '${jdbc.driver}'

出现这个问题的时候,发现是properties文件中的内容没有加载进来,第一时间确认了一下properties文件确实有引入到xml中,后来网上查找资料发现,说是因为MyBatis使用自动扫描包的方式来注册各种Mapper,导致那个引入可能会失效。解决办法是修改一下扫描那里的配置。


会导致引入文件失效的配置方法:

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">       
     	 <property name="basePackage" value="com.yrsoft"/>   
     	 <property name="sqlSessionFactory" ref="sqlSessionFactory" />
	 <property name="annotationClass" value="org.springframework.stereotype.Component" />  
</bean>

mybatis-3.1.0版本以上使用以下解决方式

正确的配置方法:第二个配置那里,sqlSessionFactory变成sqlSessionFactoryBeanName,并且使用value的方式,指向sqlSessionFactory

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">       
     	 <property name="basePackage" value="com.yrsoft"/>   
     	 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
         <property name="annotationClass" value="org.springframework.stereotype.Component" />  
</bean>



Spring、SpringMVC、Mybatis框架搭建完整教程 本文还有配套的精品资源,点击获取 简介:Spring、SpringMVC和Mybatis是Java后端开发中常用的三大框架,本教程将提供搭建这三个框架环境所需的jar包。通过引入这些jar包,开发者可以轻松实现依赖注入、面向切面编程、Web请求处理、持久层操作等功能。教程还涵盖了Zookeeper的应用,它在分布式协调服务中发挥着重要作用。开发者将学习如何使用Maven或G... 阅读详情

相关推荐

11-4 AEB 算法原理及系统组成

本专题旨在探讨如何利用仿真软件开发自动紧急制动系统AEB,主要通过整理开发流程,实现从需求到验证的全流程掌握,为后续开发提供支持;同时,研究了如何在汽车自动驾驶仿真工具中开发自己的算法,并解决了从ISO、E-CNAP、GB/T以及交通法规等提炼出功能需求的问题,以快速实现原型模型的开发。本专题重点讲解了AEB的工作原理、系统/软件架构和需求、算法模型及实现、CCRs/CCRb/CCRm建模与仿真、VRU-AEB-B/P/M建模与仿真,同时还提供了测试用例,期待将AEB算法成功地产品化。

AIgraphX 8549

SSM 整合发生异常:Error creating bean with name 'itemsController': Injection of resource dependencies fail

运行SSM工程发生异常: Error creating bean with name 'itemsController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qua

分享我的点点滴滴,在成长路上与你同行! 1491

纯相位全息图优化算法综述

除此之外,还有许多用于减少斑点噪声的非迭代方法,例如:采用下采样掩膜的采样纯相位全息图(Sampled-Phase-only Hologram)方法、模式化相位掩膜(Patterned Phase-Only Hologram)方法、双相位方法(Double-Phase Method),以及使用非随机相位掩膜的方法(Random Phase-Free Method)等。迭代算法通常由一个对目标全息图的近似出发,经过一系列的重复操作不断优化这个近似全息图,直到该近似所得到的重建图像满足一定的误差要求;

ZhongKeWeiXing的博客 1426

Dependency annotations: {@javax.annotation.Resource(shareable=true, mappedName=, description=, name=

Error creating bean with name ‘emplService’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [sw

在路上 1万+

Unity开源游戏源码精选:17个亲测可运行教学项目

Unity游戏开发中,掌握真实项目结构与工程实践远比熟记API更重要。本文围绕‘Unity开源项目’和‘游戏源码’两大核心概念,解析高质量开源资源的本质特征——结构清晰、逻辑可溯、修改即时反馈。从基础的MonoBehaviour生命周期组织,到进阶的ScriptableObject数据驱动、事件总线解耦,再到架构级的DOTS ECS设计与网络同步模式,技术价值在于将抽象原理落地为可调试、可验证、可迁移的代码范式。适用于新手建立开发直觉、中级开发者突破系统设计瓶颈,以及团队构建可维护框架。所有项目均基于Uni

weixin_31528001的博客 716

《电磁兼容设计》专栏说明

本专栏自2024年1月起开始更新,仅设此一个电磁兼容相关知识专栏,并将一直持续更新下去,无期限

linkking27的博客 791

第一次部署maven+springMVC+Mybatis所遇到的所有异常记录

2020年06月05异常记录: 1、六月 05, 2020 3:08:55 下午 org.apache.catalina.core.StandardContext loadOnStartup 严重: Servlet [SpringMVCDemo] in web application [/SpringMVCLearn2] threw load() exception org.springframework.beans.factory.parsing.BeanDefinitionParsingExcept

bo_301的博客 342

vue3 - 实现WebRTC播放实时rtsp视频流+NVR录像机回放,web前端浏览器网页播放RTSP推流,支持海康威视大华等摄像头/监控设备对接(监控摄像头录像及回放,拿到rtsp视频流如何处理)

vue3,webrtc-streamer,rtsp视频流,监控画面,nvr录像机,回放功能,监控摄像头设备,vue3播放Rtsp推流示例代码,前端如何在vue3项目中播放rtsp视频流,VUE中播放RTSP实时推流播放解决方案,vue3 webrtc播放rtsp视频流,vue3实现rtsp视频流浏览器实时播放,海康摄像机、NVR、流媒体服务器、回放取流RTSP地址,vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频,播放海康rtsp监控视频,海康摄像机/录像机预览+回放RT

✅ 精选推荐文章 1万+

Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, a

前提:使用testNG进行单元测试的时候报错。提示service层无法注入dao的mapper,很明显就是没有注入mapper层,搜到一篇博客 https://blog.youkuaiyun.com/qq_33101355/article/details/65448057?utm_medium=referral 但是不是我的问题,最后发现是扫描mapper的注解写错了,导致无法扫描到mapper层 ...

二进制的博客 1万+

ABAP 百科全书的阅读目录(2024版)

909 篇 ABAP 技术文章的目录

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4243

基于Simulink的永磁同步电机三闭环(位置/速度/电流)伺服仿真

本文详细介绍了基于Simulink的永磁同步电机三闭环伺服控制系统的设计与实现,针对机器人关节控制场景。系统采用位置环(外环)、速度环(中环)和电流环(内环)的嵌套结构,通过精确的带宽匹配(电流环1kHz、速度环200Hz、位置环20Hz)实现亚微米级位置跟踪。文中提供了完整的Simulink建模步骤,包括主电路搭建、三环PI控制器实现及坐标变换模块,并验证了系统性能:阶跃响应时间35ms,位置误差<0.05°,正弦跟踪误差<0.15°,负载突加恢复时间0.08s。最后提出了参数自适应整定、前馈

amy_mhd的博客 279

springMVC mybatis dao接口(mapper接口)注入失败

报的错误是: No qualifying bean of type [com.*.*.*.*.*.dao.UserDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotatio

lzy_2016的博客 1万+

【华为OD技术面试真题 - 技术面】- python面试题(1)

华为OD面试技术面准备指南 华为OD面试技术面常见问题解答 华为OD面试技术面经验分享 华为OD面试技术面注意事项 华为OD面试技术面攻略 华为OD面试技术面模拟题目与解析 华为OD面试技术面知识点梳理 华为OD面试技术面常考

算法大师! 5532

快速搭建SSM(Spring,SpringMVC,Mybatis)环境详细过程

快速搭建SSM(Spring,SpringMVC,Mybatis)环境详细过程 我是做移动(Android)开发的,这几天利用项目空隙大概学习了数据接口的相关知识,在这里主要记录一下搭建SSM环境的操作过程。所谓“工欲善其事必先利其器”,搭建开发环境往往是学习的第一步,其实这么说不太准确,选择使用什么环境才是最先应该考虑的,暂时叫做第零步吧。 快速搭建SSMSpringSpringMV

Steven Go 5万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Spring+SpringMVC+MyBatis框架的整合+注解

标准主流现在编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其它层代码,如果你会像Spring这样的框架,你会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。如果不使用任何框架,而单纯使用Servlet和JDBC技术,甚至只用JSP技术,同样可以实现JAVAWEB的项目开发,但这样的项目具体工作码量大,代码之间的耦合性极强,如果需要调整某一功能 ,出于连锁反应,可能要修改所有的源代

thinkhi9999的博客 2634

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

史上最详细Spring+SpringMVC+Mybatis框架整合

文章目录SSM三大框架的整合搭建整合环境编写Spring框架编写SpringMVC框架Spring整合SpringMVC框架编写Mybatis框架Spring整合MyBatis框架Spring整合MyBatis框架配置事务总结 SSM三大框架的整合 搭建整合环境 1.整合说明:SSM整合有很多种方式,我们采用XML+注解的方式 2.整合思路: 先搭建整合的环境 先把Spring的配置搭建完成 使...

weixin_43949154的博客 2392

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring的纯注解开发配置

该注解只能写在方法上,表明使用此方法创建一个对象,并且放入spring容器。@Import注解是用来导入配置类或者一些需要前置加载的类。value[]:用于指定properties文件位置。用于指定spring在初始化容器时要扫描的包。用于加载*.properties文件中的配置。basePackages:用于指定要扫描的包。和该注解中的value属性作用一样。name:给当前@Bean注解方法创建的对象指定一个名称(即bean的id)。value[]:用于指定其他配置类的字节码。

2201_75489337的博客 2100

【项目管理】之springMVC+spring+Mybatis环境搭建

最近一直在纠结是用hibernate还是用mybatis,本着让开发人员更好的上手而且不太复杂的原则,我就在思考:单就上手而言,两个框架都差不多,上手都很容易。另外一个能说服的理由是,mybatis比较灵活,这可能对开发人员的要求会高一点,那就是必须熟悉SQL语句,但我觉得这个应该问题不大,所以最后,我还是决定用mybatis。最近几篇博客将会描述SpringMVC+Spring+Mybatis+

不忘初心 1679

SSM(Spring、SpringMVC、Mybatis)注解开发整合以及项目开发所需要的必要配置

SSM总结 一、注解开发 1、mybatis中使用的注解 注解 作用及含义 @Insert 实现新增 @Update 实现更新 @Delete 实现删除 @Select 实现查询 @Result 实现结果集封装 @Results 可以与@Result 一起使用,封装多个结果集 @ResultMap 实现引用@Results 定义的封装 @One 实现一对...

CORN的博客 653

SpringMVC+Mybatis集成开发,环境搭建。

Spring Spring是一个轻量级的控制反转,面向切面的开发框架。 个人对轻量级开发框架的理解: Spring算是一个轻量级的开发框架,但是也并不能说他就是一个轻量级的开发框架,轻量级与重量级开发框架主要区别是框架对服务的的支持程度,如果你的web应用Spring的时候需要的服务相对较多,也就是Spring要为你的web应用开启相对较多的服务,那么他也就不算一个轻量级框架,所以对于Spr

u013081973的博客 1038

SSM(Spring、SpringMVC、MyBatis)从0到完整的项目搭建

SSM框架就是Spring、Spring MVC和MyBatis框架的缩写,是标准的MVC模式,将整个系统划分为四层:表现层、controller层、service层、DAO层。使用SSM框架的好处是在于其易复用和简化开发,掌握了每个框架的核心思想。

qq_52143611的博客 1565

Spring+SpringMVC+Mybatis

ssm框架总结

qq_43905491的博客 1582

Spring、SpringMVC、MyBatis、Spring Validation、Knife4j、Lombok常用注解大全

Spring、SpringMVC、MyBatis、Spring Validation、Knife4j、Lombok常用注解大全。

qq_45929711的博客 919

ssm(mybatis+spring+springmvc)常用注解

ssm(mybatis+spring+springmvc)常用注解 mybatis中常用注解 @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与@Result 一起使用,封装多个结果集 @ResultMap:实现引用@Results 定义的封装 @One:实现一对一结果集封装 @Many:...

lihuanlin93的博客 1589

三大框架:springMVC、spring、myBatis

在指定的时间间隔内,执行指定次数的写操作,会将内存中的数据写入到磁盘中。AOF(追加) 在Redis中默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。在SQL和传入的参数完全一样的情况下,多次调用mapper方法,只会执行一次sql,第一次执行sql查询到的结果集会被保存在缓存中,后面重复调用mapper方法返回的是缓存中的结果集;通过定义切面类,用来封装多个类的公共行为,将那些与业务无关,可以复用的代码封装起来,形成一个切面类的方法。

qq_58738794的博客 2424

一文搞定Spring、SpringMVC、Mybatis主要注解

SSM注解 一、Mybatis注解 @Param:作用是用于传递参数,从而可以与SQL中的字段名相对应 @Insert:实现新增,代替了 @Delete:实现删除,代替了 @Update:实现更新,代替了 @Select:实现查询,代替了 @Result:实现结果集封装,代替了 @Results:可以与@Result 一起使用,封装多个结果集,代替了 @One:实现一对一结果集封装,代替了 @Many:实现一对多结果集封装,代替了 二、Spring注解 1.声明bean的注解 @Co

qq_41898181的博客 585
上一篇: SpringMVC 入门 -- Handler编写
下一篇: Oracle sqlldr导入数据使用默认值日期
levelnini
博客等级 码龄14年 45粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值