整合SSM过程中遇到的一些问题,希望能对大家有帮助
本人小白,最近开始ssm框架的学习,搭建过程中遇到各种粗心的问题,以及解决办法,希望可以帮到大家。大佬轻喷。
一、Service 注入失败
描述:在创建Controller的bean时失败,提示该controller类中的 ***属性 at least has 1 bean (即该类中声明的属性没有正确注入)
原因:Controller中声明的属性没有添加注解(@Autowirde或@Resource),导致属性注入失败。
解决:检查对应Controller中的属性,并添加属性注解。
二、Service 注入失败
描述:提示动态代理相关的信息:invoke等。。
原因:映射文件中新增的语句,没有写id属性。。。即接口的方法名,与其对应的映射文件的某条语句id属性,没有匹配上!
解决:将接口的方法名,和映射文件的对应的id属性保持一致。
三、创建sqlSessionFactory失败
原因:mybatis会话工厂的class路径没有写。
解决:写上正确的会话工厂路径
四、加载web配置文件直接失败。
原因:使用了user libraries 来引入ssm相关jar包(可能是本人的jar路径中包含中文)
解决:采用将jar包直接放入项目中,问题消失。
五、找不到SpringMvc核心配置文件的位置
描述:提示有关mvc配置文件找不到的信息
原因:SpringMvc.xml文件没有正确放入相关位置
解决:在配置spring-mvc前端控制器时,加入初始化参数(init-param):用于指定该配置文件的路径,如下:
<!-- 配置springMvc前端控制器 --> <servlet> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:SpringMvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
此时,应该讲SpringMvc.xml放到工程目录下的config文件夹中,注意该文件将夹不是普通的Folder,而是Source Folder
六、spring自动创建Controller 的Bean时出错。
描述:该类中声明的属性(userService),没有得到注入。错误提示后面会有NullPointerException
原因:该属性(userService)对应的类中,没有任何属性和方法(即接口和实现类中都没有任何代码)。
解决:随便在对应的接口及类中完成一些功能即可。总之不能是空的类
七、基本框架已经搭建完毕,可以运行,但是添加了mybatis的接口和对应映射文件后出错
描述:提示创建mapper代理对象时出错。
原因:映射文件的 namespace没有写。----本人改了1小时才发现,崩溃!
解决:检查namespace,并添加。
以后会持续更新,有问题的可以在此留言,大家一起讨论解决。