Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteFor a Spring Boot servlet application using spring-boot-starter-web, embedded Tomcat is the default web server: the application starts it inside its own process, so you do not need to install and deploy to a separate Tomcat server. The default HTTP port is 8080. You can change common settings with Spring Boot properties and use a server factory customizer when you need Tomcat-specific APIs.
What “embedded Tomcat” means in Spring Boot
With an embedded server, the web server is part of the application’s runtime rather than a separate service into which you deploy a WAR. For the servlet stack, Spring Boot’s spring-boot-starter-web brings in Tomcat through spring-boot-starter-tomcat. When you start the application, it starts the web server as part of that process. See the Spring Boot 3.5.16 embedded web servers guide.
This default is specific to the servlet starter, not every Spring Boot web application. Reactive applications use a different arrangement: the reactive starter defaults to Reactor Netty. Spring Boot also supports other server choices, depending on the stack and release. Its web overview describes self-contained HTTP applications using embedded Tomcat, Jetty, or Netty. Choose based on your application stack, starter compatibility, required server-specific features, and deployment constraints; the cited documentation does not establish that one server is universally faster, safer, or smaller.
How to change the embedded server port
The default HTTP port for a standalone Spring Boot web application is 8080. Set server.port in your configuration to choose another port. Spring Boot’s 3.5.16 guide documents the property and these alternatives:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
#1 Best Overall
- In
application.properties:server.port=9090 - As an environment variable:
SERVER_PORT=9090 - As a JVM system property:
-Dserver.port=9090
Replace 9090 with the port you want. If that port is already occupied, the application cannot bind to it; select an available port or stop the process using it.
Request an available port for tests
Set server.port=0 to ask the operating system to assign an available port. For an integration test, Spring Boot documents @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) and @LocalServerPort for retrieving the port the test server actually bound to. This avoids assuming a particular free port.
Rank #2
Run without an HTTP listener
If you need a web application context but no HTTP listener, the 3.5.16 guide documents server.port=-1. To disable web-server behavior, set spring.main.web-application-type=none. These settings serve different purposes: the first keeps a web context without listening on a port; the second selects a non-web application type.
Which settings should use properties?
Start with Spring Boot’s built-in configuration properties for common server needs. The 3.5.16 guide documents SSL settings under server.ssl.*, compression through server compression properties, and Tomcat-specific options under server.tomcat.*. For example, server.compression.mime-types changes the media types eligible for compression. Property names and defaults can vary by Spring Boot version, so check the reference for the version used by your project.
Rank #3
For an application behind a reverse proxy, server.forward-headers-strategy and Tomcat remote-IP settings can control how forwarded address and protocol information is interpreted. These affect request identity and security decisions, not just presentation. The 3.5.16 guide warns against setting server.tomcat.remoteip.internal-proxies to an empty value in production: doing so trusts all proxies. Configure the trusted internal proxy match pattern for the deployment instead.
When and how to customize Tomcat directly
If a documented property does not expose the behavior you need, Spring Boot’s next step is a WebServerFactoryCustomizer for the server and application stack in use. For a servlet application using Tomcat, that means customizing a TomcatServletWebServerFactory. This route gives access to Tomcat-specific APIs, such as connectors and server resources.
Rank #4
For example, the Spring Boot 3.5.16 guide demonstrates using a customizer with TomcatServletWebServerFactory to add an additional connector. The connector’s protocol, port, and other details depend on the application; do not assume that an extra connector replaces the main HTTP connector or that it is configured by changing server.port.
The guide also documents enabling Tomcat’s MBean registry with server.tomcat.mbeanregistry.enabled=true. It is disabled by default to minimize Tomcat’s memory footprint. Enable it when your monitoring or management setup needs those MBeans, and verify the implications for your specific deployment.
Recommended Free Tools
How servlet components register with the embedded container
Servlets, filters, and servlet listeners declared as Spring beans are registered with the embedded servlet container. Component scanning is also available for supported servlet annotations. For startup work that would otherwise rely on container initialization, Spring Boot’s servlet documentation identifies ServletContextInitializer as the supported hook.
The embedded container does not directly invoke ServletContainerInitializer or Spring’s WebApplicationInitializer. If your integration expects either mechanism to be called by the container, adapt it to Spring Boot’s registration and initialization model. See Spring Boot 4.0 Servlet Web Applications.
Check the version before applying an example
The port and customization details above follow the Spring Boot 3.5.16 embedded-server guide. The servlet registration behavior is described in the Spring Boot 4.0 servlet reference, while the current web overview identifies Spring Boot 4.1.1 as stable and also lists 4.0.8, 3.5.16, 3.4.13, and 3.3.13. Because properties and supported server arrangements can differ across releases, use the reference matching your project’s Spring Boot version rather than copying a setting from a different line.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

