java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 使用@Component会导致spring.factories中的EnableAutoConfiguration无效

解决使用@Component会导致spring.factories中的EnableAutoConfiguration无效问题

作者:brucelwl

这篇文章主要介绍了解决使用@Component会导致spring.factories中的EnableAutoConfiguration无效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

使用@Component会导致spring.factories中的EnableAutoConfiguration无效

本文基于SpringBoot 2.6.0分析,(但实际上目前所有版本都存在这个问题),使用@Component会导致spring.factories中的EnableAutoConfiguration无效

在spring.factories中通过org.springframework.boot.autoconfigure.EnableAutoConfiguration配置自动装配类时,bean名称是全类名。

加上如下两个注解都不会出现被实例化两次的问题

但使用@Component注解会导致在spring.factories中配置的无效,bean名称变为类名首字母小写,而@Configuration不会,

原因是:

@Configuration
//@Component
public class MyCustomAutoConfiguration {

    public MyCustomAutoConfiguration() {
        System.out.println(MyCustomAutoConfiguration.class.getName() + " init...");
    }
}

为什么类上标记@Component会导致其在spring.factories中配置无效

原因在:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文