SpringBoot项目运行问题
一、java: 警告: 源发行版 17 需要目标发行版 17
原因:JDK版本和项目要运行的版本不对,项目需要的是JDK17,而我这里用的是JDK8。
解决方案:修改项目JDK版本为JDK8
二、上述操作后又出新的错 java: 无效的目标发行版: 17
原因:JDK没有配置完全
解决方案:修改JDK
修改项目中的pom.xml文件中的java依赖
三、修改完毕以后又出现了错误java: 无法访问org.springframework.beans.factory.annotation.Autowired
问题:SpringBoot版本太高,我这原来用的是3.1.5
解决:修改SpringBoot版本为2.x即可,我修改的是2.5.5
四、烦死了,还是报错:
Application run failed
java.lang.IllegalArgumentException: Unable to instantiate org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector[org.mybatis.spring.boot.autoconfigure.MybatisDependsOnDatabaseInitializationDetector]
问题:我在网上查的是说MyBatis和SpringBoot版本不符
解决:因我项目中用的是MyBatisPlus,所以我将MyBatis的依赖给注释掉了
五、Bug不断
Error creating bean with name ‘testController’: Unsatisfied dependency expressed through field ‘testService’; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException
问题:创建名称为“TestController”的bean时出错:通过字段“TestService”表示的依赖关系不满足。
- 开始我以为是MyBatisPlus的配置文件出问题了(确实是有问题)
- .xml文件 下 dependency依赖 中未声明数据库的版本信息
- 最后发现在Application中缺少mapper注入
解决:
- 按照下边的方法之后还是报错
2.添加mysql的版本号
3.在Application文件上添加@MapperScan()注解
MySQL数据连接问题
问题:出现了The server time zone value ‘�й���ʱ��‘ is unrecognized or represents more than one time zone。在JDBC驱动包6以上版本(包括6)加上了一些新特性,其导致结果在JDBC连接的URL上面必须加上serverTimezone参数,来设置时区
解决:将jdbc连接的URL后面加上serverTimezone参数,如:
jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2b8
上面时区设置为GMT+8代表为东八时区,为什么上面写的是GMT%2b8呢?那是因为URL后面的+号需要编码处理。如果直接写成GMT+8,那么+号会被解码成一个空格,会出现如下错误:
No timezone mapping entry for 'GMT 8'
,说在找不到GMT 8
的时区映射
直接写成GMT+8,那么+号会被解码成一个空格,会出现如下错误:
No timezone mapping entry for 'GMT 8'
,说在找不到GMT 8
的时区映射