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

ledgerthandis.blogspot.com

Source: https://www.javaguides.net/2018/09/spring-boot-xml-configuration-example.html

0 Response to "Java Spring Configuration Xml Example"

إرسال تعليق

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel