@Configuration 中 proxyBeanMethods = false 的作用与影响
在 @Configuration 注解中使用 'proxyBeanMethods = false' 参数会禁用对 @Bean 方法的代理,这意味着每次调用 @Bean 方法都会返回一个新的实例,而不是使用容器中的单例实例。这对于某些特定情况下是有用的,例如当 @Bean 方法依赖于非单例的外部资源,或者需要每次调用都返回一个新的实例。
使用 'proxyBeanMethods = false' 有以下几个影响:
- 每次调用 @Bean 方法都会创建一个新的实例,而不是使用容器中的单例实例。
- 如果 @Bean 方法存在依赖关系,那么每次调用该方法都会创建一个新的依赖实例。因此,如果依赖关系也是 @Bean 方法,那么它也会被禁用代理。
- 如果 @Bean 方法返回的是一个接口类型,那么将无法使用动态代理。
需要注意的是,使用 'proxyBeanMethods = false' 可能会导致性能下降,因为每次调用 @Bean 方法都会创建一个新的实例。因此,应该谨慎使用该参数,并仅在必要时使用。
原文地址: https://www.cveoy.top/t/topic/pL1s 著作权归作者所有。请勿转载和采集!