Spring不承认一些@Configuration和@Component类

我有 - 或者更确切地说 - - 一个有效的Spring应用程序,在IntelliJ中运行。 它包含几个用@Configuration注解的类,以及几个@Component bean。 在某个时候,发生了以下情况:

  • Intelli开始在代码编辑器中显示错误,指出“无法自动装载,找不到'xxx'类型的bean”。 但是有这样的bean被@Component注解。

  • 未达到特定@Component bean的构造函数中的断点。 但是对于所有的@Component bean来说并不是这样。

  • 在调试模式下运行时,某些@Configuration文件中的断点未到达,即使调试器在此之前停止。 如果使用这些@Component bean之一进行自动装配,该应用程序将失败。

  • 应用程序无错启动,但显然没有在调用@Configuration类中配置几个bean。

  • 包含运行Spring Boot应用程序的主要方法的类用@SpringBootApplication注解。 与这个类生活在同一个包中的@Component类被识别并且可以被自动装配,甚至可以被自动装配到其他包中的类中。

    我不知道代码或项目中会发生什么变化。

    文件 - >项目设置 - >模块下, Spring应用程序上下文现在已经选择了所有的@Configuration文件。 然而这没有区别。

    也尝试了Build - > Rebuild Project

    类所在的包没有改变。 有没有人见过这样的事情?

    谢谢


    如果少数班级没有得到认可@组件。 那么可能是这些类不属于同一个包。 您必须观察到与@SpringBootApplication的Main类具有相同包的类被@Component识别,因为@SpringBootApplication在包上定义了一个自动@ComponentScan。

    所以其他包中定义的其他类不会被识别,因为这些类的包没有@ComponentScan。

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

    @ComponentScan({"com.example.springboot.anything","com.example.springboot.somethingelse"})
    @SpringBootApplication
    public class AnySpringBootApplication {
    
    链接地址: http://www.djcxy.com/p/67731.html

    上一篇: Spring not recognising some @Configuration and @Component classes

    下一篇: Converting spring XML file to spring @Configuration class