Simple Hello World Application
To start with spring, let's first create a simple hello world application. We are using maven based spring project that we created in our previous topic.
We have created a couple of files and updated the default pom.xml file with Spring 5 dependencies. So, first, add these dependencies into the pom.xml file.
Spring 5 Dependencies For Maven Project
In the below-specified pom.xml, we will be adding all the Spring 5 dependencies:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
<properties>
<spring.version>5.2.8.RELEASE</spring.version>
</properties>
After adding these dependencies into the file. Let's create some Java files and XML configuration files. These files are:
-
Hello.java
-
HelloWorldService.java
-
applicationContext.xml
-
pom.xml
Now, let's create all the above mentioned Java and XML files for our spring project.
Hello.java
This file contains code for loading the application context file which is configured to load bean. Curious to know, what is Bean? Don't worry, we will cover it later in our tutorial. For now, just create this file.
package com.studytonight.example;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Hello {
public static void main(String[] args) {
// loading the Bean and XML definitions from the given XML file
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorldService obj = context.getBean(HelloWorldService.class);
obj.hello();
context.close();
}
}
HelloWorldService.java
This file contains the code that will print the "Hello Spring" message to the console. Create this file with "HelloWorldService.java" name.
package com.studytonight.example;
public class HelloWorldService {
public void hello() {
System.out.println("Hello Spring!");
}
}
applicationContext.xml
This is the configuration file for the Spring project. We can name it anything, but now save it as applicationContext.xml in your maven project.
<?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:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd">
<context:component-scan base-package="com.studytonight.examples" />
<bean id="helloWorldService"
class="com.studytonight.example.HelloWorldService">
</bean>
</beans>
pom.xml
This file is a part of the maven project and used to add dependencies for our project. For our project, we added spring dependencies. This is the latest by the time of this project. Although we can get these latest dependencies from the maven repository. Spring Dependencies.
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>springproject</groupId>
<artifactId>springproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
<properties>
<spring.version>5.2.8.RELEASE</spring.version>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
Project Structure:
After creating all the above files, we end up with the following directory structure. Our Spring project should have the following directory structure.
Run the Application:
Run this application (project) and get the below result. Since it is not a web application hence we can run it simply as a Java application.
Hello Spring!