Spring @Component声明的Bean无法实例化

在使用Spring框架时通过@Component、@Service等方式声明的bean在使用时可以自动装配,但最近在开发过程中遇到实例无法初始化的问题。通过分析发现了使用上的一个误区或者坑,记录下来避免后续继续掉坑。

Spring框架初始化@Component等声明的bean原理,简单来说,就是在启动时,Spring框架扫描加载的代码(扫描的范围可以通过ComponentScan进行设定),找到对应的注解,对bean进行实例化。因此这儿实际上有个要求:要求@Component注解声明的代码必须要在Spring框架扫描时已经加载,否则Spring框架是无法扫描到的,自然也就无法进行实例化,在运行时对应的实例自然就是null。

最近遇到的坑就是:@Component声明的代码是在插件当中,而插件是在Spring初始化完成后才去加载的(应用自己编码控制的),导致在插件中声明的bean无法实例化。

你可能感兴趣的:(Java,spring,java,后端)