如何将一个@Configuration
导入另一个实际上在 Spring 中运行?我已经想通了,即使涉及多个@Configuration
文件,通常也只会创建一个上下文。不同的配置只是将bean定义与逻辑单元平衡,对吧?最后,所有内容都导入 Root上下文。但问题是,导入实际按顺序排列。我可以想象一下情景。
个人@Configuration
创建自己的私有上下文,它在根上下文之前/并行初始化,最后与 Root上下文合并使用@Import
。因此,这些配置无法访问 Root上下文,并且在跨不同配置执行自动装配和AOP代理时可能会导致歧义。
或
导入@Configuration
时,首先初始化父(根上下文),为其他配置提供上下文以执行其逻辑。因此,父级可以执行所有组件扫描,导入的配置将随时提供这些bean。这意味着更集中的设计和更小的依赖性问题风险。
我很好奇Spring是怎么做的,因为在使用AOP代理的Spring上使用方法级别安全性时,我会遇到奇怪的循环依赖性问题。如果有人想开导我的话,我在github中推出了问题的孤立样本。