In a previous article, we discussed What is Spring IOC Container and how it works, Now in this article, we will discuss a simple example to demonstrate Spring IOC Container with XML-based configuration metadata.
Three ways we can supply Configuration Metadata to the Spring IoC container:
Spring IOC Container XML Config Example
In this example, we will supply XML-based configuration metadata to the Spring IoC container.
Development Steps
Follow these three steps to developing a spring application:- Create a simple Maven Project
- Add Maven Dependencies
- Configure HelloWorld Spring Beans
- Create a Spring Container
- Retrieve Beans from Spring Container
Tools and technologies used
- Spring Framework - 6.0.6
- JDK - 17 or later
- Maven - 3.2+
- IDE - Eclipse Mars/STS
1. Create a simple Maven Project
Create a simple maven project using your favorite IDE and refer below diagram for the packaging structure. If you are new to maven then read this article How to Create a Simple Maven Project.2. Project Structure
The below diagram shows a project structure for your reference -
3. Add Maven Dependencies
Add the following content to the pom.xml file:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.javaguides.spring</groupId>
<artifactId>spring-ioc-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.0.6</version>
</dependency>
</dependencies>
</project>
4. Configure HelloWorld Spring Beans
What is a Spring Bean?
This is a very simple question that is often overcomplicated. Usually, Spring beans are Java objects that are managed by the Spring container.
Let's create a HelloWorld Java class with the following content:package net.javaguides.spring.ioc;
public class HelloWorld {
private String message;
public void setMessage(String message) {
this.message = message;
}
public void getMessage() {
System.out.println("My Message : " + message);
}
}
This is a very simple question that is often overcomplicated. Usually, Spring beans are Java objects that are managed by the Spring container.
Let's create a HelloWorld Java class with the following content:
package net.javaguides.spring.ioc;
public class HelloWorld {
private String message;
public void setMessage(String message) {
this.message = message;
}
public void getMessage() {
System.out.println("My Message : " + message);
}
}
Next, Let's configure the HelloWorld class as Spring bean using XML-based configuration:
<?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-3.0.xsd">
<bean id="helloWorld" class="net.javaguides.spring.ioc.HelloWorld">
<property name="message" value="Hello World!" />
</bean>
</beans>
5. Create a Spring Container
If we have a spring bean configuration XML file in a standalone application, then we can use ClassPathXmlApplicationContext class to load the file and get the container object.package net.javaguides.spring.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Application {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
}
}
6. Retrieve Beans from Spring Container
The ApplicationContext interface provides the getBean() method to retrieve the bean from the spring container.package net.javaguides.spring.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Application {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();
}
}
Output
My Message : Hello World!
The source code of this example is available on my GitHub repository https://github.com/RameshMF/spring-core-tutorial
Free Spring Boot Tutorial | Full In-depth Course | Learn Spring Boot in 10 Hours
Watch this course on YouTube at Spring Boot Tutorial | Fee 10 Hours Full Course