1. 找不到或无法加载主类 com.itheima.Application
原因:绝对路径(注意是绝对路径,而不是相对路径)上的文件夹命名中含有中文,因此找不到。
2. 接口中用@RequestBody且驼峰数据命名格式,在postman中要换个名字传入
public class User{
String stuName;
String age;
}
例如:在postMan中如果正常用stuName传入,后端会显示stuName为null,也就是说其实并不会接收到
需要在postMan中传入stu_name,这样stuName才能接收到
3. 注入的奇怪调用(发现不管怎么修改自己的函数都没有改变的效果,函数调用别处去了,用ctrl + B检查它会调用哪里去)
在公司中,为了测试代码而不破坏代码,选择复制了一段代码到另一个类中,结果发现修改我复制后的各种数据都没有改变
用ctrl + B从程序入口进去,发现它调用到了原来的类中的同名函数去了,也就是不调用自家的函数调用了别家函数去了
在这里我复制了公司的代码创建了个类做测试用,除了类名不一样其他的基本一样,但是当我用ctrl + B去看里面的renderPoi()发现它调用的不是它下面的renderPoi(),而是原来的用做复制的renderPoi(),可能这就是注入的效果,下次注意。
4. 如果要使用注入,需要在使用的类上加@Component等注解
否则报错:
Execution failed for task ':boardware-inspection-webapp:Webap p.main()'. > Process 'command 'D:/Jdk/bin/java.exe'' finished with non-zero exit value 1 * Try: Run with --stacktrace option to get the stack trace. Run with the --info or --debug option to get more log output. Run with --scan to get full insights.
编译错误
注意:服务层的@Service在实现类Impl上注入,而不是接口
5. 系统找不到指定路径
写了个相对路径,确定命名和各层级地址等都没问题但是系统就是找不到。
方法1 : 类名.class.getClassLoader().getResource(templatePath)
// 项目资源目录下的路径(src/main/resources下)
final String templatePath = "doc/dv/task_2.docx";
//后面有getResourceAsStream()返回的是输出流
var documentFile = this.getClass().getClassLoader().getResourceAsStream(templatePath);
//返回的是URL对象,表示资源文件的位置
var documentPath = this.getClass().getClassLoader().getResource(templatePath);
这种方法假设文件位于类路径(classpath)中,这意味着文件应该在项目的资源目录(例如src/main/resources)或类的输出目录(例如target/classes)下。
直接写resources后面的:
doc/dv/task_2.docx
解决办法:用右键 ——> Copy Path ——> Source root:这样出来的路径就是满足上述要求的路径
方法2 : 类名.class.getResource("/" + templatePath)
相比于前面的就是多加一个/
InputStream inputStream = YourClassName.class.getResourceAsStream("/doc/dv/task_2.docx");
6. java.net.UnknownHostException: mysql
开始的配置:
url: jdbc:mysql://mysql:3306/heima?useSSL=false
更改后的配置
jdbc:mysql://127.0.0.1:3306/heima?useSSL=false
说白了其实就将其他地址转换为本地机地址
7. 系统错误
原因是:navicat中数据库大小写不区分,但是实际搜索的时候是区分的,也就是数据库没对上