【项目实战】轻量级的Web服务器 —— Undertow介绍
一、Undertow介绍 是什么?
Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器
Undertow是一个轻量级的Web服务器,旨在具有灵活性、可扩展性和易用性。它是Spring Boot应用程序的默认Web服务器,并被许多其他Java Web框架使用。
二、 Undertow特点
轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 Web 应用可以小于 10MB 内存Servlet3.1 支持:它提供了对 Servlet3.1 的支持WebSocket 支持:对 Web Socket 完全支持,用以满足 Web 应用巨大数量的客户端嵌套性:它不需要容器,只需通过 API 即可快速搭建 Web 服务器
三、Undertow如何使用?
要在Spring Boot应用程序中使用Undertow,您需要将以下依赖项添加到pom.xml文件中:
<dependency>
<groupId>io.undertow</groupId>
<artifactId>undertow-core</artifactId>
<version>2.2.5.Final</version>
</dependency>
添加依赖项后,您可以创建一个Undertow服务器,方法是创建Undertow类的实例,并传入一个Handler对象来处理传入的请求。例如:
public class MyApp {
public static void main(String[] args) {
Undertow server = Undertow.builder()
.addHttpListener(8080, "localhost")
.setHandler(new MyHandler())
.build();
server.start();
}
}
public class MyHandler implements HttpHandler {
@Override
public void handleRequest(HttpServerExchange exchange) throws Exception {
// 处理请求
}
}
在这个例子中,我们创建了一个Undertow服务器,它监听8080端口,并使用MyHandler类处理请求。
四、Undertow内置的处理程序
Undertow提供了许多内置的处理程序,可以用于处理常见任务,例如提供静态文件、处理HTTP身份验证等。您可以在Undertow文档中找到有关这些处理程序的更多信息。
要使用这些处理程序,您可以创建Undertow类的新实例,并将所需的处理程序作为参数传递给setHandler方法。例如,要提供静态文件服务,您可以使用ResourceHandler类:
Undertow server = Undertow.builder()
.addHttpListener(8080, "localhost")
.setHandler(new ResourceHandler(
new ClassPathResourceManager(MyClass.class.getClassLoader(), "/static")
))
.build();
server.start();
在这个例子中,我们创建了一个Undertow服务器,它监听8080端口,并提供位于类路径的/static目录中的静态文件服务。
五、参考文章
为什么很多 SpringBoot 开发者放弃了 Tomcat,选择了 Undertow?
https://www.baidu.com/link?url=9MAnsKP85Mqra1sHLUEn-IvKUhkdvQQF5K6gOJ9BCfpmHqRMzLgtKNxa7lu3LBrs2GxTYpHq8ckNtlOS6dPvqq&wd=&eqid=8844fec6000f601700000006622aebb8
相关文章
- unity web项目发布服务器Data file is corrupt (not a Unity W
- MyEclipse共享项目到SVN服务器
- 【Spring Boot】Spring Boot之使用Alibaba Cloud Toolkit(Idea插件)本地一键部署Spring Boot项目到远程服务器
- 服务器磁盘扩展卷时遭遇“There is not enough space available on the disk(s) to complete this operation.”错误
- fis-receiver:一行命令将项目部署到远程服务器
- 科普|不同协议下远程服务器文件上传_下载优劣对比
- 登录tomcat服务器首页直接跳转到项目
- 正向代理、Nginx(反向代理、负载均衡、静态资源服务器)
- Linux搭建时间同步服务器
- 提升tomcat服务器性能的七条经验
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之Grunt的使用简介
- 使用EasyNVR无插件流媒体服务器接口和EasyPlayer.js播放器插件实现web网页H5播放无插件
- rsync 实现文件同步 (重要数据通过rsyncr把数据同步到不同的两台服务器上,这样可以防止服务器的硬盘故障导致数据丢失) 客户端同步时如果要排某个目录
- 服务器有无中木马前期诊断 注意:wget最好是从服务器上卸载掉,因为多数情况是wget下载木马到服务器的
- gradle上传本地文件到远程maven库(nexus服务器)
- DELL 服务器如何升级固件和收集日志信息的
- linux服务器下安装phpstudy 如何命令行进入mysql
- ASP.NET Core高性能服务器HTTP.SYS
- Atitit spirngboot 访问 html文件总结 自设计web服务器原理与实现 Url路由压力,读取url,获得项目更路径绝对路径,拼接为文件路径。读取文建内容输出即可 目录路径 u
- 【项目实战】阿里云轻量云服务器中安装Docker
- 【项目实战】基于Tomcat服务器实现Debug模式下服务不用重启的指引设置
- 【项目实战】Linux使用Nginx搭建静态资源服务器
- 如何将Springboot项目成功部署到linux服务器上?
- 【项目实战】基于netty-websocket-spring-boot-starter实现WebSocket服务器长链接处理
- C++搭建websocket服务器并与浏览器js通信
- 【Web开发】Vue+Springboot项目服务器部署(环境搭建+部署流程)
- 解决Ansible初始连接host服务器需验证问题
- 07-rsync企业真实项目备份案例实战(需求收集--服务器配置---客户端配置---报警机制---数据校验---邮件告警)
- 2022年山东省职业院校技能大赛服务器配置及应用项目评分文件
- centos 6 最小化系统 搭建本地DNS缓存服务器——筑梦之路
- 上传本地新项目到SVN服务器