报错信息:No qualifying bean of type “xxx”
idea Disconnected from the target VM, address: ‘127.0.0.1:61934’, transport: ‘socket’
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException:No qualifying bean of type “xxx”……
Event Log被我清空了,所以我这里是在idea.log中找的记录,和Event Log的显示内容有一些区别,原报错内容应该大致为
idea Disconnected from the target VM, address: '127.0.0.1:61934', transport: 'socket'
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException:No qualifying bean of type "xxx"……
后面的部分我确实记不清楚了。
我在网上找了很久的报错解决办法都没有作用,于是我通过自己的探索,找到了一个解决办法,记录一下,说不定对大家有用。
我是在使用mybatis-plus的最新版代码生成器(version3.5.2)配合freemarker模板使用。
当我完成了代码生成后,我想要测试一下,我生成代码是否成功了,于是我写了一个TestController.class类,想要测试一下,于是出现了这个报错,文件如下:
TestController.class:
package com.vuespringboot.controller;
import com.vuespringboot.service.AppointmentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@Autowired
AppointmentService appointmentService;
@GetMapping("/test")
public Object test() {
return this.appointmentService.list();
}
}
我最开始以为是以为默认的配置启动端口8080被占用了,于是我在配置中讲端口改为了8089,但是错误依然存在;然后我又用8089端口启动了一个vue的前端项目,可以启动,所以发现并非端口被占用导致错误。
28h之后,我删除项目,再次从零开始后,在我再次使用代码生成器的时候,提示生成完成时,我注意到一条小警告信息“WARN: can not find ‘D:\diploma’ ……”
这条警告出现的大致原因是因为我在配置代码生成器的时候,我写了一句结束时打开文件存放文件夹的代码,但是我的文件夹名称是“diploma file”,文件名中间的那个空格它没有办法识别,于是就识别成了“D:\diploma”,所以警告说找不到文件夹,但是这个显示步骤也不影响代码生成器的正常运行,所以没有报错,只是弹出了警告。
无独有偶,由于文件夹名字带空格没有被识别,从而导致代码生成器在插入Bean注释的时候,找错了文件夹,所以导致在启动项目的时候,生成的代码AppointmentController类文件中缺少了某个@注释,所以报错。
解决办法
文件存放路径中,不要带有特殊字符,例如:特殊符号@#¥%……和空格等。
在多单词的文件夹命名时,最好就使用驼峰命名法,或者使用全小写规则命名,不要用空格。