扫码阅读
手机扫码阅读
当注入的 Bean 存在冲突时,到底有多少种解决方案?松哥总结了 5 种!
4 2024-11-27
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
江南一点雨
扫码关注公众号
文章介绍了在使用Spring框架时,如何解决通过类型获取Bean时可能遇到的多个实例导致的失败问题。提供了五种解决方案,并邀请读者探索其他可能的方案。
1. 问题呈现
描述了一个常见的问题,即当一个类A需要注入类B,而配置类中存在B的多个实例,这会导致项目启动时抛出异常。
2. 解决方案分析
2.1 @Resource
介绍了使用@Resource注解的方式,这要求添加额外的依赖,然后可以指定Bean的名称来注入所需的实例。
2.2 @Qualifier 指定name
通过@Qualifier注解和@Autowired注解结合使用,可以指定需要注入的Bean的名称。
2.3 @Qualifier 不指定name
提出了一种不指定BeanName的@Qualifier用法,这要求在注册和注入Bean时都使用@Qualifier注解。
2.4 不作为候选Bean
介绍了在注册Bean时设置该Bean不作为候选Bean的方法,这样在通过类型注入时,它就不会被考虑。
2.5 @Primary
解释了@Primary注解的用法,它指出在存在多个Bean实例时,通过类型注入将优先选择带有@Primary注解的Bean。
文章最后提出了一个问题,关于如果同时使用@Qualifier指定name和@Primary,哪一个会生效,以此来刺激读者的思考。
文章结尾再次提到了TienChin视频,强调其采用的技术栈,并邀请读者参与完成一个高完成率的项目。
想要了解更多内容?
文章来源:
江南一点雨
扫码关注公众号
江南一点雨的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线