Spring源码 If a @Configuration class gets proxied 如何理解?

发布于 2022-09-12 13:39:16 字数 1215 浏览 11 评论 0

image.png


ConfigurationClassEnhancer enhancer = new ConfigurationClassEnhancer();
for (Map.Entry<String, AbstractBeanDefinition> entry : configBeanDefs.entrySet()) {
   AbstractBeanDefinition beanDef = entry.getValue();
   // If a @Configuration class gets proxied, always proxy the target class
 beanDef.setAttribute(AutoProxyUtils.PRESERVE_TARGET_CLASS_ATTRIBUTE, Boolean.TRUE);
   // Set enhanced subclass of the user-specified bean class
 Class<?> configClass = beanDef.getBeanClass();
   Class<?> enhancedClass = enhancer.enhance(configClass, this.beanClassLoader);
   if (configClass != enhancedClass) {
      if (logger.isTraceEnabled()) {
         logger.trace(String.format("Replacing bean definition '%s' existing class '%s' with " +
               "enhanced class '%s'", entry.getKey(), configClass.getName(), enhancedClass.getName()));
      }
      beanDef.setBeanClass(enhancedClass);
   }
}

请问上图中设置的哪个属性有什么意义,该如何理解?

延伸问题一:
image.png

延伸问题二:
image.png

这个配置有什么意义啊

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文