Spring Boot应用部署 - Tomcat容器替换为Jetty容器
大约 3 分钟框架Spring Boot
Tomcat容器替换为Jetty容器
要在Spring Boot应用中将默认的Tomcat容器替换为Jetty容器,可以按照以下步骤进行操作:
修改Maven依赖
排除Tomcat依赖:首先,你需要在
pom.xml
文件中的spring-boot-starter-web
依赖里排除Tomcat。这可以通过<exclusions>
标签实现。<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
添加Jetty依赖:接下来,在
pom.xml
中添加Jetty的起步依赖。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>
配置文件调整(可选)
虽然通常情况下仅上述步骤就足够了,但如果你需要对Jetty进行额外的配置,可以在application.properties
中添加相应的配置项。例如,调整端口:
# 端口配置
server.port=8081
# 启动线程数
server.jetty.acceptors=2
# Selector线程数
server.jetty.selectors=4
# 访问日志配置
server.jetty.accesslog.enabled=true
server.jetty.accesslog.filename=access.log
server.jetty.accesslog.file-date-format=.yyyy-MM-dd
# SSL/TLS配置
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=changeit
server.ssl.keyAlias=tomcat
# 请求和响应缓冲区大小
server.jetty.max-http-header-size=10KB
server.jetty.max-http-form-post-size=20MB
重新构建和运行
完成上述修改后,确保重新构建你的项目,以便Maven下载新的依赖并更新你的应用配置。如果你使用IDE,通常可以通过清理(Clean)和重建(Build)项目来实现这一点。之后,当你再次运行你的Spring Boot应用时,它将会使用Jetty作为Web容器而非Tomcat。
由于实际日志内容会根据你的具体环境(如Spring Boot版本、Jetty版本、具体应用配置等)有所不同,我将提供一个简化的示例来说明Spring Boot应用使用Jetty启动时可能出现的日志输出。请注意,下面的示例是基于文本描述性构造的,并非直接来自某个特定运行实例。
:: Spring Boot :: (v2.6.3)
2023-04-09T10:30:45.00+08:00 INFO [main] org.springframework.boot.StartupInfoLogger - Starting application using Java 11.0.13 on DESKTOP-XXXXXX with PID 12344 (C:\workspace\myapp\target\classes started by UserName in C:\workspace\myapp)
2023-04-09T10:30:45.23+08:00 DEBUG [main] org.springframework.boot.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: [file:/C:/workspace/myapp/target/classes/, ...]
2023-04-09T10:30:46.54+08:00 INFO [main] org.springframework.boot.web.embedded.jetty.JettyWebServer - Starting Jetty web server...
2023-04-09T10:30:46.75+08:00 INFO [main] org.eclipse.jetty.util.log - Logging initialized @139ms to org.eclipse.jetty.util.log.Slf4jLog
2023-04-09T10:30:46.90+08:00 INFO [main] org.eclipse.jetty.server.Server - jetty-9.4.44.v20210927; built: 2021-09-27T11:06:34.143Z; git: 4a1c13d268d4dfe655fb413a2f4aabb09bb33357; jvm 11.0.13+8
2023-04-09T10:30:46.92+08:00 INFO [main] org.eclipse.jetty.server.handler.ContextHandler - Started o.s.b.w.e.j.JettyEmbeddedWebAppContext@764973b: http://0.0.0.0:8080/
2023-04-09T10:30:47.02+08:00 INFO [main] org.eclipse.jetty.server.Server - Started Server@7e2f09d in 2037ms
2023-04-09T10:30:47.03+08:00 INFO [main] org.springframework.boot.StartupInfoLogger - Started application in 2.49 seconds (JVM running for 3.266)
这段示例日志展示了Spring Boot应用启动的几个关键步骤,包括Spring Boot的启动信息、Jetty服务器的初始化、以及最终的成功启动消息,包括绑定的端口(在这个例子中是8080)。请注意,日期时间戳、PID、用户名、路径、版本号等信息会根据实际情况有所不同。
以上步骤应该能帮助你成功地将Spring Boot应用中的Tomcat容器替换为Jetty容器。