


What is the reason for prohibiting SpringBoot from using the Tomcat container in the project?
Tomcat container in SpringBoot
SpringBoot can be said to be the most popular Java Web framework at present. It frees developers from cumbersome xml and allows developers to create a complete web service in a few minutes, greatly improving developers' work efficiency. Web container technology is an essential component of Web projects, because any Web project must rely on container technology to run.
In the SpringBoot framework, the one we use most is Tomcat, which is the default container technology of SpringBoot and is an embedded Tomcat.
SpringBoot settings Undertow
Java programmers should be very familiar with Tomcat technology. It is the most commonly used container technology for Web applications. Our earliest developed projects were basically deployed and run under Tomcat. So in addition to Tomcat containers, what other container technologies can we use in SpringBoot? That's right, it's the Undertow container technology in the title. SrpingBoot has completely inherited Undertow technology. We only need to introduce Undertow's dependencies, as shown in the figure below.
After configuration, we started the application and found that the container had been replaced with Undertow. So why do we need to replace Tomcat with Undertow technology?
Comparison of the pros and cons of Tomcat and Undertow
Tomcat is a lightweight Servlet container under the Apache Foundation, supporting Servlets and JSP. Tomcat has unique functions of web server, including Tomcat management and control platform, security bureau management and Tomcat valve. Tomcat itself contains an HTTP server, so it can also be regarded as a separate Web server. However, Tomcat and Apache HTTP server are not the same thing. Apache HTTP server is an HTTP web server implemented in C language. Tomcat is completely free and loved by developers.
Undertow is an open source product of Red Hat. It is developed entirely in Java language. It is a flexible and high-performance web server that supports blocking IO and non-blocking IO. Since Undertow is developed in Java language, it can be directly embedded into Java projects for use. At the same time, Undertow fully supports Servlet and Web Socket, and performs very well in high concurrency situations.
We stress tested Tomcat and Undertow under the same machine configuration, and the test results obtained are as follows: QPS test result comparison: Tomcat
Undertow
Memory usage comparison:
Tomcat
Undertow
Through testing, it was found that Tomcat is relatively weak in high-concurrency systems. Under the same machine configuration and simulating an equal number of requests, Undertow is optimal in terms of performance and memory usage. And the new version of Undertow uses persistent connections by default, which will further improve its concurrent throughput capabilities. Therefore, if it is a highly concurrent business system, Undertow is the best choice.
The above is the detailed content of What is the reason for prohibiting SpringBoot from using the Tomcat container in the project?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



To deploy a JAR project to Tomcat, follow these steps: Download and unzip Tomcat. Configure the server.xml file, set the port and project deployment path. Copies the JAR file to the specified deployment path. Start Tomcat. Access the deployed project using the provided URL.

To allow the Tomcat server to access the external network, you need to: modify the Tomcat configuration file to allow external connections. Add a firewall rule to allow access to the Tomcat server port. Create a DNS record pointing the domain name to the Tomcat server public IP. Optional: Use a reverse proxy to improve security and performance. Optional: Set up HTTPS for increased security.

Tomcat installation directory: Default path: Windows: C:\Program Files\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 Custom path: You can specify it during installation. Find the installation directory: use whereis or locate command.

To deploy multiple projects through Tomcat, you need to create a webapp directory for each project and then: Automatic deployment: Place the webapp directory in Tomcat's webapps directory. Manual deployment: Manually deploy the project in Tomcat's manager application. Once the project is deployed, it can be accessed by its deployment name, for example: http://localhost:8080/project1.

How to check the number of concurrent Tomcat connections: Visit the Tomcat Manager page (http://localhost:8080/manager/html) and enter your user name and password. Click Status->Sessions in the left navigation bar to see the number of concurrent connections at the top of the page.

The Tomcat website root directory is located in Tomcat's webapps subdirectory and is used to store web application files, static resources, and the WEB-INF directory; it can be found by looking for the docBase attribute in the Tomcat configuration file.

The Tomcat port number can be viewed by checking the port attribute of the <Connector> element in the server.xml file. Visit the Tomcat management interface (http://localhost:8080/manager/html) and view the "Status" tab. Run "catalina.sh version" from the command line and look at the "Port:" line.

Running projects with different port numbers on the Tomcat server requires the following steps: Modify the server.xml file and add a Connector element to define the port number. Add a Context element to define the application associated with the port number. Create a WAR file and deploy it to the corresponding directory (webapps or webapps/ROOT). Restart Tomcat to apply changes.
