是否为 Spring 中的每个 Bean 创建了代理?

Is a proxy created for each Bean in Spring?

所以,我在网上阅读,你不能使配置最终,因为 CGLIB 扩展 class 来创建代理。但是,我正在阅读@Scope 的文档,默认的 proxyMethod 值是没有创建代理(link 这里 - https://docs.spring.io/springframework/docs/current/javadoc-api/org/springframework/context/annotation/Scope.html)。

所以,我的主要问题是,是否为每个@Configuration 创建了一个代理?

Spring 仅在需要时为 bean 创建代理(example:Transaction 管理)。我已经在另一个 SO 问题 here 中对此进行了解释,请查看答案的 A2 部分以获取更多详细信息。

对于 @Configuration 注释 class 将始终创建一个代理,这意味着它是必需的。为什么需要它可以从以下参考资料中理解。

@Bean:通读@Configuration 类 和@Bean Lite Mode 中的@Bean 方法部分

请通读来自@kriegaex 的 优秀答案,以了解 @Configuration class.

的内部工作原理

所以回答你的问题是否为每个@Configuration创建了一个代理?是的,除非 @ConfigurationproxyBeanMethods 明确配置。

希望这对您有所帮助。