一般而言,springboot 项目启动,都会加载引入的Springboot start 项目 spring.factory文件中的指定配置类,spring工厂加载配置文件定义的bean。
经过尝试,我想在Springboot项目中通过ApplicationContext对象获取Springboot start 项目未暴露(未在指定配置类未申明@Bean,比如说在Springboot start 项目用@Component申明的bean)出来的bean,获取不到。
苦恼 据我猜测,有两种可能;
- 在SpringBoot start项目中,也存在一个spring工厂,在Springboot项目启动时,springboot项目自身创建工厂,同时在SpringBoot start项目也会初始化私有的Spring工厂初始化自己的一些bean,最后SpringBoot的工厂加载SpringBoot start 指定配置类的特定的几个bean,其余的私有bean不暴漏出来
- Springboot项目工厂读取Springboot start项目中的配置文件,根据依赖关系加载指定文件中bean后,在工厂中隐藏SpringBoot start 中未暴漏出来的bean,不给外部调用
先记下来,后期研究,如果有明白答案的,请帮忙解惑 🙏