Spring bean autowire by type

Allows a property to be autowired if there is exactly one bean of the property type in the application context. If there is more than one, a fatal exception is thrown.

Let’s discuss spring bean autowire by type with below example. In below example we have SortNumbers class which have one dependency for sorting implementation. We use spring bean autowire by type here as we take sortAlgo as property name and in application context there is only one property exist of IsortAlgo type (BubbleSort).

Note: If there is more than one, a fatal exception is thrown or we have to provide the qualify information to help spring for identifying which one it should use.

We are using spring boot here.



package com.w3spoint.SpringAutowiring;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
public class SpringAutowiringApplication {
        private static ApplicationContext appContext;
	public static void main(String[] args) {
		appContext = SpringApplication.run(SpringAutowiringApplication.class, args);
		sort(new int[]{ 31,22,13,43,15,6,37});
	private static void sort(int[] data) {
		SortNumbers sortNumers = (SortNumbers) appContext.getBean("sortNumbers");


package com.w3spoint.SpringAutowiring;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
public class SortNumbers {
	ISortAlgo sortalgo;
	public void sortNumbers(int[] data){
	private static void printNumbers(int[] data) {
        for (int i = 0; i < data.length; i++) {
            if(i != data.length-1){
            	System.out.print(", ");


package com.w3spoint.SpringAutowiring;
public interface ISortAlgo {
	public int[] sort(int[] data);


package com.w3spoint.SpringAutowiring;
import org.springframework.stereotype.Component;
public class BubbleSort implements ISortAlgo {
	public int[] sort(int[] array) {
		int n = array.length;
        int k;
        for (int m = n; m >= 0; m--) {
            for (int i = 0; i < n - 1; i++) {
                k = i + 1;
                if (array[i] > array[k]) {
                    swapNumbers(i, k, array);
		return array;
	private void swapNumbers(int i, int j, int[] array) {
        int temp;
        temp = array[i];
        array[i] = array[j];
        array[j] = temp;


6, 13, 15, 22, 31, 37, 43

Related topics

Please follow and like us:
Content Protection by DMCA.com