记录一次创建SpringBoot项目中遇到的问题
最近在写一个新项目,由于没有用公司自动生成的工具,导致开发过程中遇到了不少麻烦,花了很长时间去解决。这些方法有的是在网上找的,有的是自己琢磨出来的,都记录一下希望对自己对大家都能有所帮助。
1.普通文件夹变成moudle:
由于是手动添加的moudle,虽然是按照正常步骤建立的,但是显示出来还是普通文件夹,pom文件里面引用的jar包也没有生效。
解决方法:
打开settings下的Build,Execution,deployment选项下的maven下的ignored Files项,然后把出问题的项目勾掉就恢复正常了
2.新建一个springboot项目, 启动报错
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.BeanUtils
引入:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.13.RELEASE</version>
</dependency>
编译通过,运行报NPE,错误信息如下:
解决方法:
网上说是application.properties的写法有问题,比如\或者有中文,设置了utf-8并且检查了没有\和中文,仍然不行。
其实这类问题大多是类版本冲突,后面统一spring与spring boot的版本号就没有报这个错了。
3.IllegalStateException
java.lang.IllegalStateException: Failed to load ApplicationContext
翻到错误日志最后面
发现是没有配置spring.datasource.initial-size,在properties中加入配置即可.
4.ClassNotFoundException
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException
pom中已经有jackson,主要原因是spring与jackson的版本不兼容导致,本人用的spring版本为5.1.5
换成如下:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.7</version>
</dependency>
5.NoUniqueBeanDefinitionException
Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException:
不是唯一的bean,报错信息如下,发现两个bean
解决方法:
@Autowired
@Qualifier("templateDao") //写上唯一的bean名称
6.No constructor found in …
找不到该类的构造函数,
解决方法:增加一个默认的无参的构造函数
public MyEntity() {
}
上述记录不是很完整,很多截图当时没有保留,只顾着解决问题了,如果以后再遇到会继续完善,主要想说解决思路吧,还是要从错误信息中来发现,想办法让错误信息暴露出来,多看日志。