春季未识别一些@configuration和@component类



我有 - 或更确切地说,有一个在Intellij中运行的工作弹簧应用程序。它包含用@Configuration注释的几个类和几个@Component bean。在某个时候,发生了以下情况:

  1. Intelli开始在代码编辑器中显示错误,称" 无法自动。但是有一些用@Component注释的豆。

  2. 未达到特定 @Component bean的构造函数中的断点。但这并不是所有 @Component bean。

  3. 在调试模式下运行时,即使调试器以前停在那里,也未达到某些@Configuration文件中的断点。如果使用这些@Component bean之一将应用程序自动化,则该应用程序将失败。

  4. 该应用程序启动没有错误,但显然没有在@Configuration类中配置的几种bean。

包含运行Spring Boot应用程序的主要方法的类用@SpringBootApplication注释。@Component类与本类相同的包中的类别,甚至可以自动化,甚至可以在其他软件包中的类中进行自动。

我不知道代码或项目中会更改的任何内容。

file->项目设置 ->模块 spring应用程序上下文下,现在选择了所有@Configuration文件。但是,这没有什么区别。

也尝试了构建 ->重建项目

居住在类的软件包没有更改。有人见过这样的东西吗?

谢谢

如果很少的类未被识别@component。那可能是这些类不在同一包中的情况。您必须观察到与@springbootapplication的同一软件包下的类,因为@springbootapplication @springbootapplication被识别,因为@springbootapplication在软件包上定义了一个自动@componentscan。

因此,在某些其他软件包中定义的其他类别未识别,因为这些类的软件包没有@componentscan。

您可以执行以下操作以使这些类识别(添加其他不直接在@springbootapplication的层次结构下的软件包(:

@ComponentScan({"com.example.springboot.anything","com.example.springboot.somethingelse"})
@SpringBootApplication
public class AnySpringBootApplication {

我敢肯定这不是常见的情况,但是对我来说,问题是我的班级有一个相对通用的名称。尽管它位于ComponentScan中提到的软件包中,但与所有其他类别的类别相同的级别,我一直存在ApplicationContext无法加载的问题。在我重命名的课程后,我发现org.springframework中的其他两个类别具有相同的名称。

最新更新