In this tutorial we will go over steps on how to create your simplest Spring Boot web application which listens on port 8081?
This tutorial is based on below 1st Spring Boot HelloWorld Application in IntelliJ IDEA article.
How to create 1st Web based Spring Boot HelloWorld App in IntelliJ IDEA with few simple steps?
Please make sure to follow above tutorial and modify steps 4 and 5.
Let’s get started:
Step-1, 2 and 3.
Please follow steps 1, 2 and 3 from above Spring Boot application tutorial.
Step-4
- Please add Spring Boot Web dependencies.
- Spring Web
- Spring Web Services
- Jersey
- Click Next
Step-5
- Open file: CrunchifywebappApplication.java and put below code.
- Please make sure to change package and file name if you see any error.
package com.example.crunchify.crunchifywebapp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * @author Crunchify.com * First Spring Hello World Web Application which listens on port 8081. * Version: 1.0 */ // SpringBootApplication: Indicates a configuration class that declares one or more @Bean methods and also triggers auto-configuration and component scanning. // This is a convenience annotation that is equivalent to declaring @Configuration, @EnableAutoConfiguration and @ComponentScan. // RestController: A convenience annotation that is itself annotated with @Controller and @ResponseBody. // Types that carry this annotation are treated as controllers where @RequestMapping methods assume @ResponseBody semantics by default. @SpringBootApplication @RestController public class CrunchifywebappApplication { public static void main(String[] args) { // setProperty: Sets the system property indicated by the specified key. First, if a security manager exists, its SecurityManager.checkPermission method is called with a PropertyPermission(key, "write") permission. This may result in a SecurityException being thrown. // If no exception is thrown, the specified property is set to the given value. System.setProperty("server.port", "8081"); System.setProperty("http.maxConnections", "10"); // run: Static helper that can be used to run a SpringApplication from the specified source using default settings SpringApplication.run(CrunchifywebappApplication.class, args); } @GetMapping("/crunchify") public String heyCrunchify(@RequestParam(value = "name", defaultValue = "there") String crunchify) { return String.format("Hey %s! Congratulations on creating your first Spring Boot Rest Service... by https://crunchify.com", crunchify); } }
Step-6
- Build project
- Right click on java file and run as an application
You should see below console output.
Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.3.3.RELEASE) 2020-08-17 13:07:33.379 INFO 71788 --- [ main] c.e.c.c.CrunchifywebappApplication : Starting CrunchifywebappApplication on LM-AUN-11022307 with PID 71788 (/Users/appshah/crunchify/intellij/crunchifywebapp/target/classes started by arpshah in /Users/appshah/crunchify/intellij/crunchifywebapp) 2020-08-17 13:07:33.380 INFO 71788 --- [ main] c.e.c.c.CrunchifywebappApplication : No active profile set, falling back to default profiles: default 2020-08-17 13:07:33.771 INFO 71788 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ws.config.annotation.DelegatingWsConfiguration' of type [org.springframework.ws.config.annotation.DelegatingWsConfiguration$EnhancerBySpringCGLIB$a474bef9] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2020-08-17 13:07:33.814 INFO 71788 --- [ main] .w.s.a.s.AnnotationActionEndpointMapping : Supporting [WS-Addressing August 2004, WS-Addressing 1.0] 2020-08-17 13:07:33.949 INFO 71788 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8081 (http) 2020-08-17 13:07:33.954 INFO 71788 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2020-08-17 13:07:33.954 INFO 71788 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.37] 2020-08-17 13:07:34.015 INFO 71788 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2020-08-17 13:07:34.016 INFO 71788 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 606 ms 2020-08-17 13:07:34.117 INFO 71788 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2020-08-17 13:07:34.202 INFO 71788 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path '' 2020-08-17 13:07:34.210 INFO 71788 --- [ main] c.e.c.c.CrunchifywebappApplication : Started CrunchifywebappApplication in 1.018 seconds (JVM running for 1.418)
Here is my pom.xml file with all web dependencies:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example.crunchify</groupId> <artifactId>crunchifywebapp</artifactId> <version>0.0.1-SNAPSHOT</version> <name>crunchifywebapp</name> <description>Crunchify's Hello World Web project for Spring Boot</description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jersey</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
Let’s start our test:
Test-1
Visit URL: http://localhost:8081/crunchify
Test-2
Visit URL: http://localhost:8081/crunchify?name=Crunchify
Congratulations. You have successfully created Spring Boot Web Application in quickest time.