Spring 问题解决

本文最后更新于:2024年9月8日 晚上

Spring 问题解决

未加上@ResponseBody注释导致无法启动

报错:org.thymeleaf.exceptions.TemplateInputException: Error resolving template [clock/export], template might not exist or might not be accessible by any of the configured Template Resolvers

解决方法:在controller前加上@ResponseBody注释。

配置文件不生效

原因

  • Maven可能存在资源过滤的问题。
  • java版本不对,无法正常编译配置文件。

解决方法:

  • pom配置完善。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
  • 指定java版本。
1
2
3
<properties>
<java.version>1.8</java.version>
</properties>

缺少log4j依赖

报错:java.lang.ClassNotFoundException: org.apache.log4j.Priority

解决方法:导入 log4j 依赖即可。

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

Spring Boot 启动失败

报错:org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

解决方法

  1. 检查入口 Application 文件是否加了@SpringBootApplication注解,或者@SpringBootConfiguration,@EnableAutoConfiguration两个注解。
  2. 检查pom.xml是否正确添加 web 依赖。
1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>