上一题下一题

@Bean方法重载时容器如何处理Bean名称和配置元数据

进阶版
来源:meituan中级工程师@Bean方法重载解析BeanDefinition继承合并Spring依赖注入源码Spring @Bean静态方法
草稿该题目为草稿状态,前台公开题库中不可见。
答案解析

在 Spring 里,@Bean 方法默认用方法名作为 beanName,除非显式指定了 @Bean(name = "xxx") 或 @Bean("xxx")。

如果一个配置类里出现了 @Bean 方法重载,比如:

这两个方法的方法名都叫 userService,所以默认会生成相同的 beanName。Spring 在解析配置类时,会把 @Bean 方法解析成 BeanDefinition,并以 beanName 作为 key

登录后查看完整内容