[Spring boot] Autowired by name, by @Primary or by @Qualifier
In the example we have currently:
@Component public class BinarySearchImpl { @Autowired private SortAlgo sortAlgo; public int binarySearch(int [] numbers, int target) { // Sorting an array sortAlgo.sort(numbers); System.out.println(sortAlgo); // Quick sort // Return the result return 3; } }
@Component @Primary public class QuickSortAlgo implements SortAlgo{ public int[] sort(int[] numbers) { return numbers; } } @Component public class BubbleSortAlgo implements SortAlgo{ public int[] sort(int[] numbers) { return numbers; } }
The way we do Autowired is by '@Primary' decorator.
It is clear that one implementation detail is the best, then we should consider to use @Primary to do the autowiring
Autowiring by name
It is also possible to autowiring by name:
// Change From @Autowired private SortAlgo sortAlgo; // Change to @Autowired private SortAlgo quickSortAlgo
We changed it to using 'quickSortAlgo', even we remove the @Primary from 'QuickSortAlgo', it still works as the same.
@Component // @Primary public class QuickSortAlgo implements SortAlgo{ public int[] sort(int[] numbers) { return numbers; } }
@Qualifier('')
Instead of using naming, we can use @Qualifier() to tell which one we want to autowired.
@Component @Primary @Qualifier("quick") public class QuickSortAlgo implements SortAlgo{ public int[] sort(int[] numbers) { return numbers; } } @Component @Qualifier("bubble") public class BubbleSortAlgo implements SortAlgo{ public int[] sort(int[] numbers) { return numbers; } }
@Autowired @Qualifier("bubble") private SortAlgo sortAlgo;
In this case, it will use 'BubbleSortAlgo'.
So we can say that
@Qualifier > @Primary > @naming
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2017-04-04 [CSS] Build Responsive CSS Layouts with Tachyons
2017-04-04 [CSS] Specify grid columns, rows, and areas at once with the grid-template shorthand
2017-04-04 [CSS] Nest a grid within a grid
2017-04-04 [CSS] Re-order the appearance of grid items using the order property
2016-04-04 [SVG] Simple introduce for SVG