Spring:@Configuration中@Import的性质

时间:2016-04-29 09:35:45

标签: spring spring-security dependency-injection inversion-of-control spring-aop

如何将一个@Configuration导入另一个实际上在 Spring 中运行?我已经想通了,即使涉及多个@Configuration文件,通常也只会创建一个上下文。不同的配置只是将bean定义与逻辑单元平衡,对吧?最后,所有内容都导入 Root上下文。但问题是,导入实际按顺序排列。我可以想象一下情景。

个人@Configuration创建自己的私有上下文,它在根上下文之前/并行初始化,最后与 Root上下文合并使用@Import。因此,这些配置无法访问 Root上下文,并且在跨不同配置执行自动装配和AOP代理时可能会导致歧义。

导入@Configuration时,首先初始化父(根上下文),为其他配置提供上下文以执行其逻辑。因此,父级可以执行所有组件扫描,导入的配置将随时提供这些bean。这意味着更集中的设计和更小的依赖性问题风险。

我很好奇Spring是怎么做的,因为在使用AOP代理的Spring上使用方法级别安全性时,我会遇到奇怪的循环依赖性问题。如果有人想开导我的话,我在github中推出了问题的孤立样本。

https://github.com/nostalgiatune/SpringCircularDependency

0 个答案:

没有答案