tomcat和tomcat-embed的区别比较

本文探讨了Tomcat与EmbeddedTomcat的区别,包括版本发布、操作系统支持、特性差异及性能对比。EmbeddedTomcat在简单应用中较为便利,但在大型项目中可能存在资料不足和扩展配置困难的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、tomcat和embedded tomcat都是 Apache Tomcat官方发布的,从官网上看,从Tomcat 7开始, tomcat和embedded tomcat版本是同步发布的。如下所示,7.0.78版本:

Core:

  • zip (pgp, md5, sha1)

  • tar.gz (pgp, md5, sha1)

  • 32-bit Windows zip (pgp, md5, sha1)

  • 64-bit Windows zip (pgp, md5, sha1)

  • 32-bit/64-bit Windows Service Installer 

Full documentation:

  • tar.gz (pgp, md5, sha1)

Deployer:

  • zip (pgp, md5, sha1)

  • tar.gz (pgp, md5, sha1)

Embedded:

  • tar.gz (pgp, md5, sha1)

  • zip (pgp, md5, sha1)

同时,也可以看到,独立版tomcat有window 32、64版本和unix版本而embedded tomcat没有区分操作系统

独立版tomcat区分了操作系统,究竟有哪些区别?

 

2、估计embedded tomcat代码和tomcat应该是一样的,可能做了一些精简,但具体减少了些什么东西,官方并没有说明,但有一点几乎可以确定:独立的tomcat有操作系统native支持和APR特性,但embedded没有这方面的支持。另外,在jmx和可监控性上,embedded tomcat是否支持,比如是否支持以MBean的形式监控embedded tomcat?另外,独立版tomcat支持SSI,我经常用到,embedded tomcat有这个功能,但没有说明文档,只能去翻源代码。

3、从官网每个版本的bugfix列表可以看到,和embedded相关的bug还比较多,embedded的使用上面还不是特别成熟,可能会遇到更多的问题。

4、有一点很重要,embedded tomcat几乎没有任何说明文档,网上资料也太少了,甚至找不到embedded tomcat的性能测试。更别说如果在embedded tomcat上做一些高级特性的配置,只能自己去摸索(我根据源码封装了一个支持SSI embedded tomcat,开源地址:https://github.com/jretty-org/tomcat-embed-boot)。

 

参考资料:

可以找到很多关于二者的性能测试,那么一般情况下独立的Tomcat性能会高过Spring Boot内置的Tomcat。这是因为独立的tomcat很多都配置了APR特性,而大多数比较的时候Spring Boot内置的Tomcat并没有开启这个特性。你可以选择自己启动这个特性,Spring Boot也有一个issue计划增加APR的支持(https://github.com/spring-projects/spring-boot/issues/7376)

 

总结:如果是简单应用,也不那么重要,可以使用embedded tomcat,毕竟方便。但如果是大型应用,或者很重要的应用,建议谨慎使用embedded tomcat,因为它使用没有独立版的tomcat广泛,网上资料也少,出了问题或者想做一些扩展和配置,都比较麻烦。

 

### Element UI 自定义滚动条样式及功能 Element UI 提供了 `ElScrollbar` 组件用于创建自定义滚动条。通过配置参数CSS样式调整,能够实现不同需求下的滚动效果。 #### 基础属性设置 对于是否采用浏览器默认滚动条而非Element UI定制版本,可通过设定`native`属性来控制[^1]: - 当`native`被设为`true`时,将激活系统的原生滚动机制; - 若保持其为`false`(默认),则应用由框架提供的增强型滚动体验。 ```html <template> <el-scrollbar :native="false"> <!-- 内容区域 --> </el-scrollbar> </template> ``` #### 解决样式冲突问题 当遇到原生滚动条与Element UI组件间存在的视觉干扰情况时,可以通过覆盖特定的CSS规则来进行修正[^2]。例如针对`.el-scrollbar__wrap`类增加必要的样式声明以优化显示效果: ```css /* 调整内部包裹层 */ .el-scrollbar__wrap { overflow-x: hidden; } ``` #### 进一步美化滚动条外观 为了使滚动条更贴合项目设计风格,还可以利用LESS/SASS预处理器编写更具针对性的选择器,并将其应用于整个应用程序中[^4]。下面是一个简单的例子展示如何改变滚动轨道及其按钮的颜色: ```scss // 定义变量以便统一管理颜色值 $scrollbar-thumb-color: #d3dce6; $scrollbar-track-color: rgba(0, 0, 0, .08); // 应用到所有地方的通用样式 body ::v-deep(.el-scrollbar__thumb){ background-color: $scrollbar-thumb-color !important; } body ::v-deep(.el-scrollbar__track){ background-color: $scrollbar-track-color !important; } ``` > 注意:上述SCSS代码片段中的`:deep()`伪元素是为了确保子组件内的样式也能生效;如果使用的是Vue CLI,则可能需要根据实际情况调整路径前缀。 #### 功能扩展实例 除了基本的样式更改外,有时还需要添加额外的功能特性,比如监听滚动事件触发某些操作或是动态加载更多数据等。此时可以在模板部分绑定相应的方法处理程序: ```javascript export default { methods:{ handleScroll(event){ console.log('当前滚动位置:', event.target.scrollTop); // 根据业务逻辑执行其他任务... } } }; ``` ```html <template> <el-scrollbar @wheel.native.prevent="handleScroll"> <!-- 需要监控的内容区 --> </el-scrollbar> </template> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值