是否为 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创建了一个代理?是的,除非 @Configuration
的 proxyBeanMethods
明确配置。
希望这对您有所帮助。
所以,我在网上阅读,你不能使配置最终,因为 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创建了一个代理?是的,除非 @Configuration
的 proxyBeanMethods
明确配置。
希望这对您有所帮助。