Biggest Sale of the Year 2025 and Launched New Udemy Courses : Grab the Deal 🎯

Spring Boot XML Configuration Example

🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.

▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube

▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube

In this article, we will quickly discuss how to develop a simple Spring boot application using XML-based Spring configuration.

In this example, we don't use either Annotation-based configuration or Java-based configuration, we only use XML-based configuration to create and configure beans.

Overview

Spring provides a @ImportResource annotation to load beans from an applicationContext.xml file into an Application Context.
@ImportResource({"classpath*:applicationContext.xml"})
In this example, we are creating a simple message-processing spring boot application. Here we are sending a message using different services like SMSService, TwitterService, and EmailService. We will configure message service beans in the applicationContext.xml file and we will load beans using @ImportResource annotation as:
@SpringBootApplication @ImportResource({"classpath*:applicationContext.xml"}) public class Springboot2XmlConfigApplication { public static void main(String[] args) { ApplicationContext applicationContext = SpringApplication.run(Springboot2XmlConfigApplication.class, args); MessageProcessor userService = applicationContext.getBean(MessageProcessor.class); userService.processMsg("twitter message sending "); } }
While there are multiple ways of doing this, the recommended way is to create a separate configuration class to load this XML bean definition file.
@Configuration @ImportResource({"classpath*:applicationContext.xml"}) public class XmlConfiguration { }
The key part of the definition is @ImportResource({" classpath*:applicationContext.xml"})
 
Let's create a complete simple spring boot example to demonstrate how to set up an XML-based configuration.

1. Setup

Let's quickly create a Spring Boot application using Spring Initializr at http://start.spring.io/, which is an online Spring Boot application generator.

Add this Maven dependency in the pom.xml file:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Here is the project structure or packaging structure for your reference:

2. Create Interfaces and Classes

In this example, we are sending messages using different services like SMSService, TwitterService, and EmailService

MessageService.java

Let's create a MessageService interface with the following content:
public interface MessageService { public void sendMsg(String message); }

EmailService.java

Let's create an EmailService class that implements the MessageService interface and its method:
public class EmailService implements MessageService { public void sendMsg(String message) { System.out.println(message); } }

SMSService.java

Let's create the SMSService class that implements the MessageService interface and its method:
public class SMSService implements MessageService { public void sendMsg(String message) { System.out.println(message); } }

TwitterService.java

Let's create the TwitterService class that implements the MessageService interface and its method:
public class TwitterService implements MessageService { public void sendMsg(String message) { System.out.println(message); } }

MessageProcessor.java

Let's create a MessageProcessor interface with the following content:
public interface MessageProcessor { public void processMsg(String message); }

MessageProcessorImpl.java

Let's create the MessageProcessorImpl class that implements the MessageProcessor interface and its method:
public class MessageProcessorImpl implements MessageProcessor { private MessageService messageService; public void setMessageService(MessageService messageService) { this.messageService = messageService; } public void processMsg(String message) { messageService.sendMsg(message); } }

3. The applicationContext.xml File

Let's create and configure Spring beans in the applicationContext.xml file.
<?xml version="1.0" encoding="UTF-8"?> <beans	xmlns="http://www.springframework.org/schema/beans"	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"	xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">	<bean id="emailService" class="net.guides.springboot2.springboot2xmlconfig.service.EmailService" />	<bean id="sMSService" class="net.guides.springboot2.springboot2xmlconfig.service.SMSService" />	<bean id="twitterService" class="net.guides.springboot2.springboot2xmlconfig.service.TwitterService" />	<bean id="messageProcessor" class="net.guides.springboot2.springboot2xmlconfig.service.MessageProcessorImpl">	<property name="messageService" ref="twitterService"></property>	</bean> </beans>

4. Running Application

This spring boot application has an entry point Java class called Springboot2XmlConfigApplication.java with the public static void main(String[] args) method, which you can run to start the application.
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.ImportResource; import net.guides.springboot2.springboot2xmlconfig.service.MessageProcessor; @SpringBootApplication @ImportResource({ "classpath*:applicationContext.xml" }) public class Springboot2XmlConfigApplication { public static void main(String[] args) { ApplicationContext applicationContext = SpringApplication.run(Springboot2XmlConfigApplication.class, args); MessageProcessor userService = applicationContext.getBean(MessageProcessor.class); userService.processMsg("twitter message sending "); } }

Output:


Master Spring Boot with Source Code on GitHub - Spring Boot Tutorial 

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare