🎉 这款国产 Servlet 容器开源了 96% 的代码
1、smart-servlet 简介
smart-servlet 是目前 Gitee、Github 平台上首款,也是 唯一的全栈核心技术自研 的国产开源的 Servlet 容器项目。
产品特色
-
国产血统:核心技术 100% 全栈自研。
-
性能优越:搭载最新版通信微内核 smart-socket。
-
安全可靠:严格遵循协议规范;支持加密传输方式。
-
极致轻量:发行包不足 800KB。
-
简洁易用:支持 War 包、springboot、maven-plugin 等多种运行模式,使用体验 100% 兼容 Tomcat。
版本比较
功能 | 开源版 | 企业版 |
---|---|---|
目标用户 | 个人 | 企业 |
Servlet基础能力 | ✅ | ✅ |
Websocket规范 | ✅ | ✅ |
异步规范 | ✅ | ✅ |
Session并发实例化 | 1个/秒 | 无限制 |
会话安全性 | 弱 | 强 |
War包部署 | ❌ | ✅ |
JSP | ❌ | ❌ |
2、 版本更新
smart-servlet 的这个版本着重提升 TCK 用例的覆盖度。
已将用例数从 360 个,提升至如今的 665 个。而随着用例通过数的增长,使得 smart-servlet 在规范细节上的实现更加成熟。
另外,这个版本我们决定将原先企业版的功能(WebSocket、异步规范)也进行开源。降低用户对于 smart-servlet 采取商业不友好开源模式(AGPL开源协议)的顾虑,同时也让用户更加全面的了解 smart-servlet。
自此,smart-servlet 开源代码量接近 1.7 万行,闭源代码量仅剩 700 行左右,开源比例高达 96%。倘若后续积攒了足够体量的用户(尊重开源成果的用户,不包括白嫖),smart-servlet 将开放所有源码。
前段时间将最新的 smart-servlet 提交了 tfb 评测,从结果来看smart-servlet 在性能方面较 undertow 依旧呈碾压之势。
更新内容
-
优化 Servlet 初始化机制,防止多次执行
init
-
优化
ServletRegistration#addMapping
规范实现。 -
优化
HttpServletRequest#getIntHeader
规范实现。 -
优化
HttpServletRequest#getSession
规范实现。 -
优化
HttpServletRequest#setCharacterEncoding
规范实现 -
优化
HttpServletRequest#getReader
规范实现 -
优化
ServletContext#getResource
规范实现 -
优化
ServletContext#getRealPath
规范实现 -
优化
ServletContext#setInitParameter
规范实现 -
优化
ServletContext#addServlet
规范实现 -
优化
ServletContext#createServlet
规范实现 -
优化
ServletContext#getServletRegistration
规范实现 -
优化
ServletContext#getServletRegistrations
规范实现 -
优化
ServletContext#addFilter
规范实现 -
优化
ServletContext#getFilterRegistration
规范实现 -
优化
ServletContext#getSessionCookieConfig
规范实现 -
优化
ServletContext#getFilterRegistrations
规范实现 -
优化
ServletContext#setSessionTrackingModes
规范实现 -
优化
ServletContext#addListener
规范实现 -
优化
ServletContext#createListener
规范实现 -
新增
HttpServletRequest#getPathTranslated
规范实现。 -
开源企业版插件:
AsyncContextPlugin
-
开源企业版插件:
WebsocketPlugin
3、快速上手
我们提供了三种方式启用 smart-servlet,您可根据实际情况选择其中适用的一种。
方式一:maven 插件
这是一种类似:tomcat-maven-plugin
的使用方式,通常应用于 Java Web 工程的本地开发环境。集成该插件只需在 pom.xml 中加入以下代码,便可以在 IDE 中启动 servlet 服务。
<build> <plugins> <plugin> <groupId>org.smartboot.servlet</groupId> <artifactId>smart-servlet-maven-plugin</artifactId> <version>{最新版}</version> <configuration> <port>8080</port> <path>/portal</path> </configuration> </plugin> </plugins> </build>
插件的版本建议采用最新版本,另外主要的配置项包括:
-
port:servlet 服务启动的监听端口
-
path:Servlet 容器上下文路径,即 ContextPath,通常以 / 表示。当然也支持自定义,但必须以 / 开头 完成配置后在控制台输入:
mvn package smart-servlet:run
即可。
方式二:smart-servlet-spring-boot-starter
用过 springboot 的 spring-boot-starter-tomcat
或者 spring-boot-starter-undertow
的朋友应该对此不陌生。
smart-servlet-spring-boot-starter
本质上就是 smart-servlet 对 spring-boot-starter-web 的另一种适配。
只需按照以下方式调整 springboot 工程中 pom.xml 文件的配置,便可将 springboot 的默认 Servlet 容器替换成 smart-servlet。
<dependencys> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!-- Exclude the Tomcat dependency --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- Use smart-servlet instead --> <dependency> <groupId>org.smartboot.servlet</groupId> <artifactId>smart-servlet-spring-boot-starter</artifactId> <version>{最新版}</version> </dependency> </dependencys>
方式三:发行包
发行包适用于 War 包的部署方式,也是生产环境中常用的一种形式。(联系作者获取)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Dante Cloud 3.3.0.5 发布,适配支持华为国产 OpenGauss 数据库
Dante Cloud 是国内首个支持阻塞式和响应式融合的微服务。以「高质量代码、低安全漏洞」为核心,采用领域驱动模型(DDD)设计思想,完全基于 Spring 生态全域开源技术和 OAuth2.1 协议,支持智能电视、IoT等物联网设备认证,满足国家三级等保要求、支持接口国密数字信封加解密、防刷、高防XSS和SQL注入等一系列安全体系的多租户微服务解决方案。 理念 Dante Cloud 一直秉承着“简洁、高效、包容、务实”的理念,使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,不断地深耕细作、去粗取精、用心打造。目标是构建一款`代码质量高、维护投入低、安全防护强`的,可以帮助用户快速跨越架构技术选型、技术研究探索阶段,降低传统项目中因安全漏洞、技术负债、低质代码等潜在隐患所产生的高维护投入,期望像项目名字寓意一样,在行业变革的时期承上启下,助力企业信息化建设和变革的产品。 定位 构建成熟的、完善的、全面的,基于 OAuth2.1 的、前后端分离的微服务架构解决方案。 面向企业级应用和互联网应用设计开发,既兼顾传统项目的微服务化,又满足互联网应用开发建设、快速迭代的使用需求...
- 下一篇
vxe-table 4.7.12 已经发布,vue 表格解决方案
vxe-table 4.7.12 已经发布,vue 表格解决方案 此版本更新内容包括: table 优化自定义列自定义保存逻辑 详情查看:https://gitee.com/xuliangzhan_admin/vxe-table/releases/4.7.12
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案