Software Development

Using Spring @Autowired with @Qualifier



This article demonstrates how to qualify beans of the same reference type in Spring. @Qualifier enables you to select and use a particular bean from a set of beans of the same type existing in the Spring container.

Software Environment

  • Windows 7 Professional SP1
  • Eclipse – Kepler Release
  • Java 1.7 (1.7.0_67 – Windows x86)
  • Spring Framework
    • Spring Context 4.1.2

Create a Maven Project

If you have not yet created a maven project, you may want to follow the steps on How to create a Maven project in Eclipse. Put the following dependency in your pom.xml file:

The Codes

All in all, there are only three (3) source code files for this article.

The main class –

Here, two (2) instances of anynomous class of type JdbcDao is created. They are declared as beans within the Spring container and each is labeled with a name. Bean “mockdao” is a mock-up of the real DAO; while bean “dao” is the real DAO that retrieves data directly from the database.


Just imagine we are doing a test-driven development where we are at the initial stage of a new development project and persistence storage is still unavailable.

The Interface –

The Service –

This is where you specify which instance of JdbcDao will be used. Bean “mockdao” or “dao”? The codes below uuse “mockdao”.

Sample Output


What happens if @Qualifier is not used?

If you comment out line 11 in and run again, the following exception is thrown:


Got comments or suggestions? We disabled the comments on this site to fight off spammers, but you can still contact us via our Facebook page!.

You Might Also Like