Java Spring Configuration Xml Example
Spring Boot XML Configuration Example
In this article, we will quickly discuss how to develop a simple Spring boot 2 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.
Spring provides a @ImportResource annotation is used 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 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"}). applicationContext.xml will be imported from the classpath.
Let's create a complete simple spring boot example to demonstrate how to set up XML based configuration.
Create and Import Spring Boot application
Let's quickly create a Spring Boot application using Spring Initializr at http://start.spring.io/, which is an online Spring Boot application generator.
Please refer the project structure as in below diagram.
The pom.xml File
<?xml version= "1.0" encoding= "UTF-8" ?> <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.guides.springboot2</groupId> <artifactId>springboot2-xml-config</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>springboot2-xml-config</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
Let's create Message POJO class with few service class for demonstration. In this example, we are sending messages using different services like SMSService, TwitterService and EmailService.
Message.java
package net.guides.springboot2.springboot2xmlconfig.model; public class Message { private int id; private String message; public Message(int id, String message) { super(); this .id = id; this .message = message; } }
MessageService.java
public interface MessageService { public void sendMsg(String message); }
EmailService.java
import org.springframework.stereotype.Service; public class EmailService implements MessageService{ public void sendMsg(String message) { System .out.println(message); } }
SMSService.java
import org.springframework.stereotype.Service; public class SMSService implements MessageService{ public void sendMsg(String message) { System .out.println(message); } }
TwitterService.java
import org.springframework.stereotype.Service; public class TwitterService implements MessageService{ public void sendMsg(String message) { System .out.println(message); } }
MessageProcessor.java
public interface MessageProcessor { public void processMsg(String message); }
MessageProcessorImpl.java
package net.guides.springboot2.springboot2xmlconfig.service; public class MessageProcessorImpl implements MessageProcessor { private MessageService messageService; public void setMessageService(MessageService messageService) { this .messageService = messageService; } public void processMsg(String message) { messageService.sendMsg(message); } }
The applicationContext.xml File
Let's create and configure Spring beans in 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>
Running Application
This spring boot application has an entry point Java class called Springboot2XmlConfigApplication.java with thepublic static void main(String[] args) method, which you can run to start the application.
package net.guides.springboot2.springboot2xmlconfig; 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
Read 25+ Spring Boot Articles with Source Code on GitHub - Spring Boot 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
Source: https://www.javaguides.net/2018/09/spring-boot-xml-configuration-example.html
0 Response to "Java Spring Configuration Xml Example"
إرسال تعليق