IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别
作者:mmseoamin日期:2024-01-18

特别注意:

IDEA是存在一定的bug的,也就是可能你的文件已经生效了被识别到了,只不过IDEA并没有给你标注上去,因此具体是否可以使用你可以先启动一下项目试试,实在不行删除一下项目缓存,重新编译再试一次。或者重启IDEA。大部分情况下,按照这种方式进行配置基本都是没有问题的。

这个问题出现在SpringBoot2.7之后,

在SpringBoot2.7.x版本之后,慢慢不支持META-INF/spring.factories文件了,需要导入的自动配置类可以放在/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中,可以看下spring-boot-autoconfigure-2.7.7.jar下的这个文件

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第1张

对比SpringBoot2.3.12.RELEASE版本

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第2张

可以大概看一下这篇文章SpringBoot2.7新特性

SpringBoot2.7新特性

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第3张

所以,如果我想要自动导入一些类的时候,就可以把这些类的类路径写在org.springframework.boot.autoconfigure.AutoConfiguration.imports这个文件中了。情况如下

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第4张

但是我创建这样的一个目录的时候,发现这个目录中的类并没有被自动加载

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第5张

很明显可以发现,这个东西是没有被IDEA识别到的,正常情况如下

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第6张

后面我重新创建了一下发现,其实你不能一次性直接创建一个叫做META-INF.spring的目录,这样子IDEA会把它当作一个目录名称,而不是一个结构。

所以正确的操作是先创建META-INF目录,然后在其下面创建spring目录,然后把这个文件放进去即可。

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第7张

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第8张

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第9张

IDEA中使用org.springframework.boot.autoconfigure.AutoConfiguration.imports没有被识别,在这里插入图片描述,第10张

到此为止就成功了