Bird
Raised Fist0
Spring Bootframework~5 mins

Embedded server concept in Spring Boot

Choose your learning style10 modes available
Introduction

An embedded server lets your Spring Boot app run as a simple program without needing a separate web server setup.

When you want to quickly run a web app without installing a web server like Tomcat separately.
When you want to package your app as a single runnable file for easy deployment.
When you want to simplify development by running the server automatically with your app.
When you want to create microservices that start fast and run independently.
When you want to avoid configuration complexity of external servers.
Syntax
Spring Boot
spring-boot-starter-web dependency includes an embedded server like Tomcat by default.

@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

The embedded server is included automatically with the web starter dependency.

You don't need to install or configure a separate server like Tomcat or Jetty.

Examples
This adds the embedded Tomcat server to your project automatically.
Spring Boot
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
This is the main class that starts the embedded server and your app.
Spring Boot
@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}
You can change the embedded server port in application.properties.
Spring Boot
server.port=8081
Sample Program

This Spring Boot app runs with an embedded Tomcat server. When you run it, it starts the server automatically. Visiting http://localhost:8080/ shows the message.

Spring Boot
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@RestController
class HelloController {
    @GetMapping("/")
    public String hello() {
        return "Hello from embedded server!";
    }
}
OutputSuccess
Important Notes

You can switch embedded servers (Tomcat, Jetty, Undertow) by changing dependencies.

Embedded servers make deployment easier but may use more memory than lightweight servers.

Use application.properties to customize server settings like port or context path.

Summary

Embedded servers let Spring Boot apps run standalone without external server setup.

They simplify development and deployment by bundling the server inside the app.

You control the embedded server via dependencies and configuration files.

Practice

(1/5)
1. What is the main advantage of using an embedded server in a Spring Boot application?
easy
A. It requires manual installation of a web server before running the app.
B. It allows the application to run standalone without needing an external server.
C. It disables HTTP support in the application.
D. It forces the use of XML configuration files.

Solution

  1. Step 1: Understand embedded server purpose

    Embedded servers are included inside the app, so no external server setup is needed.
  2. Step 2: Compare options

    Only It allows the application to run standalone without needing an external server. correctly states the standalone running advantage. Others describe incorrect or unrelated facts.
  3. Final Answer:

    It allows the application to run standalone without needing an external server. -> Option B
  4. Quick Check:

    Embedded server = standalone app [OK]
Hint: Embedded server means no external server needed [OK]
Common Mistakes:
  • Thinking external server is still required
  • Confusing embedded server with disabling HTTP
  • Assuming XML config is mandatory
2. Which dependency is commonly used to include an embedded Tomcat server in a Spring Boot project?
easy
A. spring-boot-starter-security
B. spring-boot-starter-data-jpa
C. spring-boot-starter-test
D. spring-boot-starter-web

Solution

  1. Step 1: Identify embedded server dependency

    The embedded Tomcat server comes with the spring-boot-starter-web dependency.
  2. Step 2: Eliminate unrelated dependencies

    Other options relate to data, security, or testing, not embedded servers.
  3. Final Answer:

    spring-boot-starter-web -> Option D
  4. Quick Check:

    Web starter includes embedded Tomcat [OK]
Hint: Web starter includes embedded Tomcat by default [OK]
Common Mistakes:
  • Choosing data or security starters for embedded server
  • Confusing test starter with server dependency
3. Given this Spring Boot application.properties setting:
server.port=8085
What will happen when you run the app with embedded Tomcat?
medium
A. The embedded server will start on port 8085.
B. The server will ignore this and use default port 8080.
C. The app will fail to start due to invalid port.
D. The server will start on port 80.

Solution

  1. Step 1: Understand server.port property

    Setting server.port changes the embedded server's listening port.
  2. Step 2: Apply property effect

    Since 8085 is valid, the embedded Tomcat will start on port 8085.
  3. Final Answer:

    The embedded server will start on port 8085. -> Option A
  4. Quick Check:

    server.port sets embedded server port [OK]
Hint: server.port config changes embedded server port [OK]
Common Mistakes:
  • Assuming default port always used
  • Thinking invalid port causes failure (8085 is valid)
  • Confusing port 80 as default
4. Consider this Spring Boot main class snippet:
public static void main(String[] args) {
  SpringApplication.run(MyApp.class, args);
}

If you remove the embedded server dependency, what will happen when you run this app?
medium
A. The app will start with an external server automatically.
B. The app will fail to start with a missing server error.
C. The app will start but no web server will run.
D. The app will start and embed Jetty server by default.

Solution

  1. Step 1: Understand dependency role

    spring-boot-starter-web provides the embedded server. Without it, Spring Boot runs as a non-web application.
  2. Step 2: Effect of removing embedded server dependency

    The app starts successfully, but no web server runs since no web dependencies are present.
  3. Final Answer:

    The app will start but no web server will run. -> Option C
  4. Quick Check:

    No web starter = app starts, no server [OK]
Hint: No web starter = app starts without server [OK]
Common Mistakes:
  • Thinking app fails to start without server dependency
  • Believing external server auto-starts
  • Assuming Jetty starts by default without dependency
5. You want to switch your Spring Boot app's embedded server from Tomcat to Jetty. Which change is required?
hard
A. Exclude spring-boot-starter-tomcat and add spring-boot-starter-jetty dependency.
B. Add spring-boot-starter-jetty without excluding Tomcat.
C. Change server.port to 9090 in application.properties.
D. Add spring-boot-starter-undertow dependency only.

Solution

  1. Step 1: Understand default embedded server

    Spring Boot uses Tomcat by default with spring-boot-starter-web.
  2. Step 2: How to switch embedded server

    You must exclude Tomcat dependency and add Jetty starter to replace it.
  3. Final Answer:

    Exclude spring-boot-starter-tomcat and add spring-boot-starter-jetty dependency. -> Option A
  4. Quick Check:

    Exclude Tomcat + add Jetty = switch server [OK]
Hint: Exclude Tomcat before adding Jetty starter [OK]
Common Mistakes:
  • Adding Jetty without excluding Tomcat causes conflicts
  • Changing port does not switch server
  • Adding Undertow starter switches to Undertow, not Jetty
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard