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