Spring Boot – Project Deployment Using Tomcat
Spring Boot is a microservice-based framework and making a production-ready application in it takes very little time. Spring Boot is built on the top of the spring and contains all the features of spring. And is becoming a favorite of developers these days because it’s a rapid production-ready environment that enables the developers to directly focus on the logic instead of struggling with the configuration and setup.
Process for Project Deployment on Spring Boot
Spring Boot application deployment on Tomcat Server involves three steps:
- Create a sample Spring Boot Application
- Ways of creation of a Spring Boot WAR
- Deploying the WAR to Tomcat – Preferably higher versions of Tomcat are required.
To use the appropriate tomcat version and java version, it will be helpful to prior visit the HTML file.
Step 1: Creating a sample Spring Boot Application
This is a spring boot web application project, i.e. the project need to be deployed on tomcat. The project can be created as maven based project and hence required dependencies we can specify in pom.xml file
pom.xml->Configurations can be specified in a Maven project via pom.xml
As the project needs to be deployed using Tomcat, it has to be packaged as “WAR”(Web Application Resource or Web application Archive).
Basically, pom.xml should have spring boot related dependencies like
- spring-boot-starter-tomcat and its scope is set to be provided “geeks-web-services” should be the name of “WAR” file as per pom.xml
A controller class is required through which we can able to invoke the services either as a GET method or POST method. As a sample, let us see “SampleRestControllerExample.java” which contains two methods as “GET” methods
Two methods are written which provide a static text as output.
As this is a simple example, just let us show as on calling “geeks-web-services/hello”, displays Hello Geek, this is a simple hello message to take care and have a nice day.
on calling “geeks-web-services/greet”, displays Hello Geek, Fast and easy development can be possible on Spring-based applications by reducing source code.
@RestController is a specialized version of the controller. It includes the @Controller and @ResponseBody annotations, and as a result, simplifies the controller implementation.
Example 2: SampleRestControllerExample.java
Step 2: Ways of creation of a Spring Boot WAR
There are 3 ways of creating a Spring Boot WAR:
- “Main” class should contain with “extends SpringBootServletInitializer” class in the main class.
- “Embedded servlet container should be marked as provided.
- Packaging should be WAR
SpringBootWarDeploymentOnTomcatServer.java is our Main class
We can run the maven steps using the command line
mvn clean install -X
As an image let us see the project structure and the target folder
Step 3: Deploying the WAR to Tomcat
Apache Tomcat Server has to be installed if not installed earlier. Preferably higher versions of tomcat will be helpful. As an example, We are using tomcat version 9.0.x
To use the appropriate tomcat version and java version, it will be helpful to check the HTML file. In our previous step, we have got “geek-web-services.war” and it has to be copied under the “webapps” folder of tomcat.
Now, open the command prompt and point to the tomcat location’s bin folder
And also our war file is deployed in tomcat too. The below screenshot confirms that
We can test the same by executing the below URL in a browser
Project Explanation: It is as justified via video provided below as follows:
Conclusion: As explained above, a spring boot project can be deployable in Tomcat. Do remember certain important points as listed:
- By default, Spring Boot 1.4.4.RELEASE requires Java 7 and Spring Framework 4.3.6.RELEASE or above
- Higher versions of Tomcat will be helpful to deploy spring-boot applications.