depends-on in Spring XML Configuration

By Arvind Rai, March 10, 2023
In Spring XML configuration, the depends-on property of <bean> element is used to resolve bean dependencies. If a bean is needed to be initialized before any other bean, we can use depends-on property.
Suppose we have three beans A, B and C. Their dependencies are as given below.

B depends on C

A depends on B.

First A will be initialized, and then B and then C.
<bean id="testA" class="com.concretepage.A"  depends-on="testB"/>
<bean id="testB" class="com.concretepage.B" depends-on="testC"/>
<bean id="testC" class="com.concretepage.C" /> 

Complete Example

app-conf.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="testA" class="com.concretepage.A"  depends-on="testB"/>
    <bean id="testB" class="com.concretepage.B" depends-on="testC"/>
    <bean id="testC" class="com.concretepage.C" />
</beans> 
A.java
package com.concretepage;
public class A {
	public A(){
		System.out.println("Bean A is initialized");
	}
} 
B.java
package com.concretepage;
public class B {
	public B(){
		System.out.println("Bean B is initialized");
	}
} 
C.java
package com.concretepage;
public class C {
	public C(){
		System.out.println("Bean C is Initialized.");
	}
} 
SpringTest.java
package com.concretepage;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest {
	public static void main(String[] args) {
		 ApplicationContext context = new ClassPathXmlApplicationContext("app-conf.xml");
	}
} 
Find the output.
Bean C is Initialized.
Bean B is initialized
Bean A is initialized 
POSTED BY
ARVIND RAI
ARVIND RAI







©2024 concretepage.com | Privacy Policy | Contact Us