报错1:SpringBoot找不到bean
Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean
缺少注解 @SpringBootApplication
报错2:Maven Process terminated
Maven 编译遇到 Process terminated
xml文件标签重复、格式不规范
报错3:Not registered via @EnableConfigurationProperties
给UserBean添加@ConfigurationProperties时,编译错误,是因为没有被添加为组件。@Component可以解决
报错4:Junit测试,使用 @SpringBootTest 爆红字,Cannot solve symbol
网上搜了很多方法,主要有
①移动test位置到main中
②<scope>test</scope> 注释掉
③idea配置中删除 SpringBootTest.class 配置项
导入的Junit版本冲突,看一下自己的SpringBoot依赖版本
错误5:浏览器访问 “Whitelabel Error Page“
看看是不是Application 启动类 的位置不对,启动类与扫描包同级
报错6:运行时异常 UnsupportedClassVersionError
java: java.lang.UnsupportedClassVersionError: org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessor has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
原因:
高版本的编译后文件,无法在低版本环境运行
那问题来了,哪来的高版本编译后文件?ConfigurationMetadataAnnotationProcessor 显然是 spring-boot-starter-parent 依赖引入的,3.02 换低版本 2.3.4即可
误删pom.xml,bug居然没了,大无语.....
错误7: Error resolving template [index]
[THYMELEAF][http-nio-8080-exec-5]
Exception processing template "index": Error resolving template [index], template might not exist or might not be accessible by any of the configured Template Resolvers
org.thymeleaf.exceptions.TemplateInputException: Error resolving template [index], template might not exist or might not be accessible by any of the configured Template Resolvers
原因:
Thymeleaf的声明放错了地方。。。,Thymeleaf 语法没报错,但页面解析不出来。
只要有一个页面使用了Thymeleaf,每个Html都要加Thymeleaf表头
8 java.io.IOException: Could not find resource mybatis-config.xml
mybatis总配置文件放错位置了,应该在resources下
9 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.atguigu.mapper.UserMapper.selectUser
总配置文件映射错位
<mappers>
<mapper resource="com.atguigu.mapper.UserMapper"/>
</mappers>
10 Error building SqlSession
### Error building SqlSession.
### The error may exist in com/atguigu/mapper/UserMapper.xml
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/atguigu/mapper/UserMapper.xml
解决1:mybatis-config.xml 的 mapper resource 路径写错了,应该以 / 作为分割
把conf.xml文件下的<mapper>里的 resource="com.easy.mapping.userMapper.xml" 改为 resource="com/easy/mapping/userMapper.xml"
解决2:静态资源拦截,在pom添加
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
网上其他的解决方案:
class 路径下,接口和它的Mapper配置文件必须同名
接口和它的Mapper配置文件必须同一个包下
官方给出全限定名保证不出错
你可以多找找与路径相关的
在查询上面resultType="com.bing.pojo.User"这个有时候也需要全限定名
11 sql异常:You can't specify target table 'grade_tbl' for update in FROM clause
需求:删除重复条目(删除自动编号不同,其他信息相同的条目)
解决方法,给临时表起别名
# 错误
delete from grade_tbl where 自动编号 not in (select min(自动编号) from grade_tbl group by 学号,姓名,课程编号,课程名称,分数);
# 正确
delete from grade_tbl
where 自动编号
not in (select * from (select min(自动编号) from grade_tbl group by 学号, 姓名, 课程编号, 课程名称, 分数) as temp);
12 java.lang.NullPointerException 空指针异常
错误:在实现层,测试BookService,增删改查都是空指针异常。
解决:容器中没有BookService组件,BookService 字段上添加@Autowired
13、@Autowired的Service层报错
没有加入容器,service添加@service