Notice: Constant WP_MEMORY_LIMIT already defined in /home/javawith/public_html/codesjava.com/wp-config.php on line 107

Notice: Constant WP_MAX_MEMORY_LIMIT already defined in /home/javawith/public_html/codesjava.com/wp-config.php on line 108
Spring bean autowire by constructor - CodesJava

CodesJava

Easy learning with example program codes

spring bean autowire by constructor


Notice: Undefined variable: footnotelist in /home/javawith/public_html/codesjava.com/wp-content/plugins/latex2html/inc/core.php on line 475

Spring bean autowire by constructor is analogous to spring bean autowire by type but applies to constructor arguments.

Let’s discuss spring bean autowire by constructor with below example. In below example we have SortNumbers class which have one dependency for sorting implementation. We use spring bean autowire by constructor here as we take sortAlgo as constructor argument 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.

Example

SpringAutowiringApplication.java

package com.codesjava.SpringAutowiring;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
 
@SpringBootApplication
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");
		sortNumers.sortNumbers(data);		
	}
 
}

SortNumbers.java

package com.codesjava.SpringAutowiring;
 
import org.springframework.stereotype.Component;
 
@Component
public class SortNumbers {
	ISortAlgo sortalgo;	
 
	public SortNumbers(ISortAlgo sortalgo) {
		super();
		this.sortalgo = sortalgo;
	}
 
	public void sortNumbers(int[] data){
		printNumbers(sortalgo.sort(data));
	}
 
	private static void printNumbers(int[] data) {          
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i]);
            if(i != data.length-1){
            	System.out.print(", ");
            }
        }
        System.out.println("\n");
    }    
}

ISortAlgo.java

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

BubbleSort.java

package com.codesjava.SpringAutowiring;
 
import org.springframework.stereotype.Component;
 
@Component
public class BubbleSort implements ISortAlgo {
	@Override
	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;
    }
}

Output

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

Related topics

Please follow and like us:
error

Spring Tutorial








Copyright © 2019 CodesJava DMCA.com Protection Status