Linux中安装Tomcat
文章目录
- 一、Tomcat介绍
- 1.1、Tomcat是什么
- 1.2、Tomcat的工作原理
- 1.3、Tomcat适用的场景
- 1.4、Tomcat与Nginx、Apache比较
- 1.4.1、优势
- 1.4.2、劣势
- 1.4.3、定位功能
- 1.5、Tomcat 的主要组件
- 1.6、Tomcat 的主要配置文件
- 二、Tomcat安装
- 2.1、查看可用的JDK
- 2.2、安装OpenJDK 11
- 2.3、配置环境变量
- 2.4、验证安装
- 2.5、查看tomcat的可以用版本
- 2.6、安装tomcat
- 2.7、添加环境变量
- 2.8、启动tomcat
- 2.9、安装Tomcat管理包
- 2.10、配置登录用户路径
一、Tomcat介绍
1.1、Tomcat是什么
Tomcat(全称Apache Tomcat)是一个开源的Web应用服务器,专门用于运行Java编写的网站和Web应用程序。它是由Apache Software Foundation开发和维护的,能够实现Java Servlet、JavaServer Pages (JSP) 等Java技术规范,是开发和部署Java Web应用的常用选择。
Tomcat之所以被广泛使用,主要是因为它兼具轻量级和功能强大的特点。作为Servlet容器,Tomcat负责管理Servlet的生命周期,从初始化到销毁,同时支持多线程处理多个并发请求,确保高效处理HTTP请求。另外,Tomcat还支持JSP技术,允许开发者在HTML页面中嵌入Java代码,动态生成网页内容。
Tomcat的历史可以追溯到1999年,当时由Sun Microsystems捐赠给Apache软件基金会,成为Jakarta项目的一部分,并逐步发展成为今天的独立项目。这一历史背景使得Tomcat不仅在技术上具有深厚的积累,同时也拥有强大的社区支持。对于开发者来说,无论是初学者还是专业开发人员,Tomcat都提供了一个稳定且易于上手的平台,便于构建和扩展各种类型的Web应用。
1.2、Tomcat的工作原理
Tomcat的工作原理主要涉及其核心组件:连接器(Connector)和容器(Container),以及它们如何协同工作来处理HTTP请求。
首先,连接器(Connector)是Tomcat中负责接收HTTP请求的第一个组件。它监听特定端口(如8080),当HTTP请求到达时,Connector接收并解析这些请求,然后转换成Tomcat的Request对象。这一过程涉及到网络I/O和字节流处理,确保原始HTTP请求被正确转换为Tomcat内部可处理的格式。
接下来,处理后的Request对象传递给容器(Container)。Tomcat的容器系统采用层次结构,包括Engine、Host、Context和Wrapper四个层级。Request对象首先传递到Engine,然后到Host,接着到Context,最后到Wrapper。每个层级可以包含多个子容器,形成一种父子关系。这种设计使得Tomcat能够高效管理多个应用和请求。
在Container内部,Request对象继续通过一系列管道(Pipeline)和阀(Valve)进行处理。这些组件负责执行各种通用功能,比如安全检查、会话管理以及请求过滤。这个处理过程为后续目标Servlet的准备提供了必要条件。
具体到Servlet的调用,当Request对象到达对应的Wrapper时,Wrapper确定由哪一个Servlet来处理该请求。一旦找到目标Servlet,就会调用它的service方法,该方法根据请求的HTTP方法(如GET或POST)来决定具体调用doGet或doPost等。Servlet然后生成响应,通过同样的管道回传给Connector,最终以HTTP响应的形式返回给客户端。
Tomcat的工作流程非常注重各组件之间的协同和数据传递。从网络请求的接收和转换,到请求在容器中的层层传递与处理,每一步都是为了确保不同Web应用和Servlet能够高效、安全地运行。理解这些流程对于优化和部署Java Web应用至关重要。
1.3、Tomcat适用的场景
- Web应用服务器:Tomcat是一个功能强大的Web应用服务器,可以用于部署和运行各种Java Web应用程序。它支持Servlet、JSP、WebSocket等技术,并提供了丰富的扩展点和API,方便开发者进行定制和集成。
- 轻量级应用服务器:相较于其他重量级的Java EE应用服务器(如WildFly、GlassFish),Tomcat更加轻量级,占用资源较少,启动速度快,适合在小型到中型项目中使用。
- 开发和测试环境:由于Tomcat易于安装和配置,并且提供了丰富的文档和社区支持,它经常被用作开发和测试环境中的默认Web服务器。开发人员可以在本地机器上快速搭建和测试Web应用程序。
- 微服务架构:随着微服务架构的流行,Tomcat也可以作为轻量级的容器来部署和管理单个微服务。它可以与Spring Boot等框架结合使用,提供快速的开发和部署体验。
- 云原生应用:虽然Tomcat本身不是专为云原生应用设计的,但它可以通过Kubernetes等容器编排工具轻松地部署到云平台上。这使得Tomcat成为构建云原生应用的一个可行选择。
尽管Tomcat具有广泛的应用场景,但对于大型项目或需要更高级功能的企业级应用,可能需要选择更强大的应用服务器,如WildFly、WebLogic或WebSphere等。这些服务器提供了更多的特性和性能优化,以满足企业级应用的需求。
1.4、Tomcat与Nginx、Apache比较
1.4.1、优势
- Apache:Apache是一个通用的Web服务器,支持多种编程语言,如PHP、Python、Perl等。它能够处理动态内容,并且可以通过扩展脚本和模块来支持动态页面。Apache的稳定性好,对PHP的支持相对简单,适合静态HTML和图片等资源。
- Nginx:Nginx是一个高性能的HTTP服务器和反向代理服务器,主要用于静态资源的请求分发和负载均衡。它采用异步非阻塞的事件驱动模型,可以更好地处理大量并发请求。Nginx轻量级,占用内存少,抗并发能力强,提供负载均衡功能。
- Tomcat:Tomcat是专为Java应用程序开发的Web应用服务器,能够处理Servlet和JSP等Java Web应用。它是开发和调试JSP程序的首选,适用于中小型系统和并发访问用户较少的场合。
1.4.2、劣势
- Apache:配置相对复杂,自身不支持动态页面,需要额外的插件或模块来支持Java等语言。在高并发情况下,由于线程切换的开销,性能可能会下降。
- Nginx:虽然Nginx在静态文件处理和并发能力上表现出色,但它不如Apache那样支持众多模块和动态页面处理。与Apache相比,Nginx的rewrite功能较弱,需要配合其他后端使用。
- Tomcat:主要用作Java Web应用服务器,对静态内容的响应速度不及Apache和Nginx。在高负载情况下,性能可能会下降。
1.4.3、定位功能
- Apache:Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器,支持多种模块,性能稳定。Apache本身适合静态HTML、图片等资源,但可以通过扩展脚本、模块等支持动态页面。
- Nginx:Nginx是轻量级的高性能HTTP和反向代理服务器。它以其出色的性能和高并发处理能力而闻名,主要用于处理静态资源和负载均衡。
- Tomcat:Tomcat是Java Servlet容器,专门用于运行Java Web应用程序。它可以处理HTTP请求并将其传递给Java应用程序进行处理。
1.5、Tomcat 的主要组件
- Server:
- Server 是最顶层的组件,代表一个Tomcat实例。在JVM中只有一个Server实例。
- Server 可以有一个或多个Service组件。
- 它包含一些基本属性如地址和端口,以及一个关闭命令字符串。
- Server 在启动和关闭时会记录日志,这些日志文件通常位于CATALINA_HOME/logs目录下。
- 它还可以包含一些Listener,这些监听器可以在Tomcat启动和关闭时执行特定任务。
- Service:
- Service 是Connector和Container的组合。
- 一个Tomcat实例可以有多个Service,它们通过不同的端口来区分。
- Service 内包含一个或多个Connector和一个Engine。
- 每个Service可以独立配置,互不干扰。
- 在Service中还可以配置一个共享的线程池Executor,以提高Connector间的资源利用效率。
- Connector:
- Connector 负责接收和处理来自客户端的请求。
- 支持不同的网络协议(如HTTP、AJP)。
- 可以配置为阻塞或非阻塞模式。
- 负责将请求解析后分发给对应的Container进行处理。
- Connector 的配置直接影响到Tomcat的性能和安全性。
- Container:
- Container 是处理请求的逻辑单元,包括Engine、Host、Context和Wrapper四个层级。
- Engine 对应一个Service,负责管理Host。
- Host 对应一个虚拟主机,可以包含多个Web应用Context。
- Context 对应一个Web应用,包含具体的Servlet和JSP等资源。
- Wrapper 是最小的单元,每个Wrapper封装一个Servlet实例。
1.6、Tomcat 的主要配置文件
- server.xml:
- 主配置文件,定义了Tomcat的基本结构,包括Service、Connector、Engine、Realm、Valve和Hosts的配置信息。
- 可以配置Service的线程池、Connector的协议和端口、Engine下的Host和Context等。
- server.xml的修改需要重启Tomcat才能生效。
- web.xml:
- 遵循Servlet规范的标准配置文件,用于配置Servlet、Filter、Listener等Web应用程序的组件。
- 可以为所有的Web应用程序提供默认配置,包括MIME映射、Servlet初始化参数等。
- web.xml允许程序员为特定的Web应用进行定制化配置。
- context.xml:
- 提供所有Host的默认配置信息。
- 可以在不同的层级(Server、Host、Web app)进行配置。
- context.xml的修改可以动态加载,无需重启Tomcat。
- tomcat-users.xml:
- 定义Realm认证时用到的相关角色、用户和密码等信息。
- 控制对Tomcat的Manager App的访问权限。
- 可以通过编辑此文件来添加、删除用户或为用户指定角色。
- logging.properties:
- 日志相关配置,定义日志级别、文件路径等。
- catalina.policy 和 catalina.properties:
- 分别为Java安全策略配置文件和Tomcat内部包的定义及访问控制。
二、Tomcat安装
2.1、查看可用的JDK
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum search java|grep jdk
ldapjdk-javadoc.noarch : Javadoc for ldapjdk
openjdk-asmtools-javadoc.noarch : Javadoc for openjdk-asmtools
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk.x86_64 : OpenJDK 8 Runtime Environment
java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.8.0-openjdk-demo.i686 : OpenJDK Demos 8
java-1.8.0-openjdk-demo.x86_64 : OpenJDK 8 Demos
java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment 8
java-1.8.0-openjdk-devel.x86_64 : OpenJDK 8 Development Environment
java-1.8.0-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 8
java-1.8.0-openjdk-headless.x86_64 : OpenJDK 8 Headless Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed
java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle 8
java-1.8.0-openjdk-src.x86_64 : OpenJDK 8 Source Bundle
java-11-openjdk.i686 : OpenJDK Runtime Environment 11
java-11-openjdk.x86_64 : OpenJDK 11 Runtime Environment
java-11-openjdk-demo.i686 : OpenJDK Demos 11
java-11-openjdk-demo.x86_64 : OpenJDK 11 Demos
java-11-openjdk-devel.i686 : OpenJDK Development Environment 11
java-11-openjdk-devel.x86_64 : OpenJDK 11 Development Environment
java-11-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 11
java-11-openjdk-headless.x86_64 : OpenJDK 11 Headless Runtime Environment
java-11-openjdk-javadoc.i686 : OpenJDK 11 API documentation
java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
java-11-openjdk-javadoc-zip.i686 : OpenJDK 11 API documentation compressed in a
java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in
java-11-openjdk-jmods.i686 : JMods for OpenJDK 11
java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
java-11-openjdk-src.i686 : OpenJDK Source Bundle 11
java-11-openjdk-src.x86_64 : OpenJDK 11 Source Bundle
java-11-openjdk-static-libs.i686 : OpenJDK libraries for static linking 11
java-11-openjdk-static-libs.x86_64 : OpenJDK 11 libraries for static linking
ldapjdk.noarch : The Mozilla LDAP Java SDK
openjdk-asmtools.noarch : To develop tools create proper & improper Java
2.2、安装OpenJDK 11
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum install -y java-11-openjdk java-11-openjdk-devel
2.3、配置环境变量
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
2.4、验证安装
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# java -version
openjdk version "11.0.23" 2024-04-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS, mixed mode, sharing)
2.5、查看tomcat的可以用版本
注:以下两条命令都可查看
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum list all | grep tomcat
jglobus-ssl-proxies-tomcat.noarch 2.1.0-13.el7 epel
tomcat.noarch 7.0.76-16.el7_9 updates
tomcat-admin-webapps.noarch 7.0.76-16.el7_9 updates
tomcat-docs-webapp.noarch 7.0.76-16.el7_9 updates
tomcat-el-2.2-api.noarch 7.0.76-16.el7_9 updates
tomcat-javadoc.noarch 7.0.76-16.el7_9 updates
tomcat-jsp-2.2-api.noarch 7.0.76-16.el7_9 updates
tomcat-jsvc.noarch 7.0.76-16.el7_9 updates
tomcat-lib.noarch 7.0.76-16.el7_9 updates
tomcat-native.x86_64 1.2.35-1.el7 epel
tomcat-servlet-3.0-api.noarch 7.0.76-16.el7_9 updates
tomcat-webapps.noarch 7.0.76-16.el7_9 updates
tomcatjss.noarch 7.2.5-1.el7 base
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum search tomcat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
================================================================================== N/S matched: tomcat ===================================================================================
jglobus-ssl-proxies-tomcat.noarch : Globus Java - SSL and proxy certificate support for Tomcat
tomcat-admin-webapps.noarch : The host-manager and manager web applications for Apache Tomcat
tomcat-docs-webapp.noarch : The docs web application for Apache Tomcat
tomcat-javadoc.noarch : Javadoc generated documentation for Apache Tomcat
tomcat-jsp-2.2-api.noarch : Apache Tomcat JSP API implementation classes
tomcat-jsvc.noarch : Apache jsvc wrapper for Apache Tomcat as separate service
tomcat-lib.noarch : Libraries needed to run the Tomcat Web container
tomcat-native.x86_64 : Tomcat native library
tomcat-servlet-3.0-api.noarch : Apache Tomcat Servlet API implementation classes
tomcat-webapps.noarch : The ROOT and examples web applications for Apache Tomcat
tomcatjss.noarch : JSS Connector for Apache Tomcat, a JSSE module for Apache Tomcat that uses JSS
tomcat.noarch : Apache Servlet/JSP Engine, RI for Servlet 3.0/JSP 2.2 API
tomcat-el-2.2-api.noarch : Expression Language v2.2 APIName and summary matches only, use "search all" for everything.
2.6、安装tomcat
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum -y install tomcat
2.7、添加环境变量
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# vi /etc/profile
export CATALINA_HOME=/usr/share/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# source /etc/profile
2.8、启动tomcat
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# systemctl start tomcat
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application ContainerLoaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)Active: active (running) since Sun 2024-08-18 17:39:31 CST; 8s agoMain PID: 12914 (java)CGroup: /system.slice/tomcat.service└─12914 /usr/lib/jvm/jre/bin/java -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/to...Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.catalina.core.StandardService startInternal
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting service Catalina
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.catalina.core.StandardEngine startInternal
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting Servlet Engine: Apache Tomcat/7.0.76
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.coyote.AbstractProtocol start
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.coyote.AbstractProtocol start
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.catalina.startup.Catalina start
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Server startup in 49 ms
2.9、安装Tomcat管理包
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum install -y tomcat-webapps tomcat-admin-webapps
2.10、配置登录用户路径
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# vi /usr/share/tomcat/conf/tomcat-users.xml
相关文章:
Linux中安装Tomcat
文章目录 一、Tomcat介绍1.1、Tomcat是什么1.2、Tomcat的工作原理1.3、Tomcat适用的场景1.4、Tomcat与Nginx、Apache比较1.4.1、优势1.4.2、劣势1.4.3、定位功能 1.5、Tomcat 的主要组件1.6、Tomcat 的主要配置文件 二、Tomcat安装2.1、查看可用的JDK2.2、安装OpenJDK 112.3、配…...
RV1126音视频学习(二)-----VI模块
文章目录 前言2.RV1126的视频输入vi模块2.1什么是VI模块2.3RV1126VI模块主要APIRK_MPI_SYS_Init()RK_MPI_VI_SetChnAttrRK_MPI_VI_EnableChnRK_S32 RK_MPI_VI_DisableChnRK_MPI_VI_StartStreamRK_MPI_SYS_GetMediaBufferRK_MPI_MB_GetPtrRK_MPI_MB_GetSizeRK_MPI_MB_ReleaseBuf…...
「C/C++」C++17 之 std::string_view 轻量级字符串视图
✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...
Linux内核-内核模块内核参数
作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们的Linux进阶部分,到目前为止,已经讲过:硬件,日常运维,基础软…...
中电信翼康工程师:我在 Apache SeaTunnel 社区的贡献之旅
贡献者Github ID:luckyLJY 文章整理:曾辉 Apache SeaTunnel 作为一款强大的数据同步和转换工具,凭借其部署易用性、容错机制、数据源支持、性能优势、功能丰富性以及活跃的社区支持,成为了数据工程师们不可或缺的利器。 因其具有的…...
【ESP32S3】VSCode 开发环境搭建
ESP32S3 有多种开发方式,主流的有 Eclipse 和 VSCode 两种。本文来介绍一下基于 VSCode 的开发环境搭建。 VSCode 环境需要依赖于 ESP-IDF 插件,因此需要在 VSCode 插件市场中搜索并安装 ESP-IDF 插件: 安装完成后侧边栏会多出一个 ESP-IDF …...
大模型,多模态大模型面试问题基础记录24/10/24
大模型,多模态大模型面试问题基础记录24/10/24 问题一:LoRA是用在节省资源的场景下,那么LoRA具体是节省了内存带宽还是显存呢?问题二:假如用pytorch完成一个分类任务,那么具体的流程是怎么样的?…...
使用TimeShift备份和恢复Ubuntu Linux
您是否曾经想过如何备份和恢复您的Ubuntu或Debian系统?TimeShift是一个强大的备份和还原工具。TimeShift允许您创建系统快照,提供了一种在出现意外问题或系统故障时恢复到先前状态的简便方式。您可以使用RSYNC或BTRFS创建快照。 有了这个介绍࿰…...
win7现在还能用吗_哪些配置的电脑还可以安装win7系统
2024年了都,win7现在还能用吗?答案是肯定的。那么哪些配置的电脑还可以安装win7系统呢?下面就针对这两个问题详细分区。 win7现在还能用吗? Windows 7系统虽然已经停止官方支持,但仍然可以使用。以下是关于Windows 7系…...
基于GPT的智能客服落地实践
📍前言 在日常生活中,「客服」这个角色几乎贯穿着我们生活的方方面面。比如,淘宝买东西时,需要客服帮你解答疑惑。快递丢失时,需要客服帮忙找回。报名参加培训课程时,需要客服帮忙解答更适合的课程…… 基…...
Sourcetree和GitLab的结合使用
一、写在前面 为什么是Sourcetree和GitLab?因为遇到的坑最少,在不用梯子的情况下,推送速度还可以。 这篇文章主要介绍的是,怎么把自己写的代码文件打包放到GitLab上去,方便别人下载使用,也方便自己在另一…...
双十一开启极速达夜派;黑神话获泰国年度最佳游戏;AI 模型可帮助识别 17000 多种疾病的候选药物....| 网易数智日报
双 11 菜鸟在北京、上海、广州、杭州等城市开启「预售极速达夜派」服务 10 月 21 日,菜鸟在北京、上海、广州、杭州等城市开启「预售极速达夜派」服务,批量大促包裹实现小时级送达。 据介绍,在消费者支付尾款前,菜鸟供应链就已经…...
深入理解JAVA虚拟机(一)
介绍JAVA虚拟机的运行时数据区域 按照物理结构来划分:java虚拟机主要由以下几部分构成栈、堆和程序计数器,其中栈又可以分为虚拟机栈VM stack 和 本地方法栈 Native Method Statck,堆可以划分方法区和普通的堆内存。按照逻辑划分线程私有空间…...
从Excel文件中读取数据
笔记 import openpyxl # 打开工作簿 workbookopenpyxl.load_workbook(景区天气.xlsx) # 选择要操作的工作表 sheetworkbook[景区天气] # 表格数据是二维列表,先遍历的是行,后遍历的是列 lst[] # 存储的是行数据 for row in sheet.rows:sublst[] # 存储单…...
深入剖析MySQL的索引机制及其选型
在数据库管理系统中,索引是一种重要的优化工具,用于加速数据的检索和查询处理。在MySQL中,合理使用索引可以显著提高数据库的性能。本文将深入探讨MySQL的索引机制,包括不同类型索引的优势、劣势及在实际使用中的选型策略。 1. 什…...
校园表白墙源码修复版
此校园表白墙源码基于thinkphp,因为时代久远有不少bug,经本人修复已去除大部分bug,添加了美化元素。 https://pan.quark.cn/s/1f9b3564c84b https://pan.baidu.com/s/1bb9vu9VV2jJoo9-GF6W3xw?pwd7293 https://caiyun.139.com/m/i?2hoTc…...
Android 内存优化——常见内存泄露及优化方案
看到了一篇关于内存泄漏的文章后,就想着分享给大家,最后一起学习,一起进步: 如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在…...
Qt6.7.2中使用OpenSSL的坑
最近编写Qt Quick项目,使用Qt6.7.2版本,CMAKE编译,开始QtCreator运行代码都没有问题,访问https也正常,但打出安装包后一试,发现https访问不了,尴尬!! 查看了相关日志发现…...
Mybatis-08.基础操作-删除
一.删除 接口方法 package com.gjw.mapper;import com.gjw.pojo.Emp; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper;import java.util.List;Mapper public interface EmpMapper {// 根据ID删除数据Delete("delete from e…...
通过FDM升级Firepower
1.基本说明 本文主要主要介绍如何通过FDM来升级Firepower设备,这里以FPR1010设备为例,那么什么事Firepower、FDM呢?在开始之前,进行简单的介绍。 Firepower:思科 Firepower 是网络安全和流量管理产品的集成套件&…...
使用 Kibana 将地理空间数据导入 Elasticsearch 以供 ES|QL 使用
作者:来自 Elastic Craig Taverner 如何使用 Kibana 和 csv 采集处理器将地理空间数据采集到 Elasticsearch 中,以便在 Elasticsearch 查询语言 (ES|QL) 中进行搜索。Elasticsearch 具有强大的地理空间搜索功能,现在 ES|QL 也具备这些功能&am…...
demo说明
代码说明 MDIO总线的注册和初始化:分配并注册MDIO总线,用于与PHY设备通信。 网络设备的创建:分配网络设备(如以太网接口)。 PHY设备连接:通过phy_connect函数连接PHY设备,指定回调函数my_adj…...
【c++篇】:从基础到实践--c++内存管理技巧与模版编程基础
✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:c篇–CSDN博客 文章目录 前言一.c/c内存分布二.c/c的动态内存管理方式2.1.c语言的动态内存管…...
如何减小 Maven 项目生成的 JAR 包体积 提升运维效率
在使用 Maven 构建 Java 项目时,有时需要减小生成的 JAR 包的体积,以提高部署效率或减少资源消耗。以下是一些有效的方法来减小 JAR 包的体积: 排除不必要的依赖打包时,依赖jar包独立于应用jar包 1. 排除不必要的依赖 通过排除项目…...
Python自动化会议记录与摘要生成
前言 在现代工作环境中,会议是团队沟通和决策的重要方式。然而,整理会议记录和生成摘要往往是一项耗时且容易出错的任务。幸运的是,借助Python编程语言以及一些强大的库,我们可以自动化这一过程,让机器帮助我们完成这…...
SwiftUI 中 List 或 Form 子视图关联的 swipeAction 导致展开动画异常的解决
问题现象 小伙伴们都知道,在 SwiftUI 中更快捷的增强 List 或 Form 子视图(Cell)交互功能的方法是使用 swipeAction 修改器。不过,对其使用稍有不慎也会横生枝节。 如上图所示,不适当的设置 Cell 视图布局会使 swipeAction 无法生成正确的收缩和展开动画。对此我们有什么…...
Apache Paimon Catalog
Paimon Catalog可以持久化元数据,当前支持两种类型的metastore: 文件系统(默认):将元数据和表文件存储在文件系统中。hive:在 hive metastore中存储元数据。用户可以直接从 Hive 访问表。 2.2.1 文件系统…...
C++基础:三个字符串也能搞大小?
上一篇说了三个整数比较大小,按照顺序输入的,这次我们看看字符串的,顺便把那个简化以下: 题目:这次输入三个字符串。如果用户输入“Stenbeck", “Hemingway”,“Fitzgerald”,输出将是“Fitzgerald,Hemingway&…...
了解AIGC——自然语言处理与生成
AIGC——自然语言处理与生成:揭秘AI如何生成语言 近年来,AIGC(AI Generated Content)技术迅猛发展,自然语言处理(Natural Language Processing, NLP)与生成技术的结合,使得机器不仅…...
Modern CMake 简明教程(8)- 集成Qt
在项目中集成 Qt 库需要先使用 find_package 查找 Qt 的安装位置。对于 Qt4, CMake 使用 Module 模式进行查找(FindQt4.cmake 由 CMake 提供),而 对于 Qt5、Qt6,则是使用 Config 模式进行查找,相应的 config 文件位于类似下面的目录中 D:\Qt\5.15.2\msvc2019\lib\cmake。…...
做电影网站 需要进那些群/怎么建立网站的步骤
数据库是大难题。 MySQLRedis (中文手册 命令参考)Mongodb (中文手册)nosql文档转载于:https://www.cnblogs.com/can-H/articles/7604421.html...
做网站要不要营业执照/最近军事新闻热点大事件
郑重声明:本文纯属Fans同学的个人见解,仅供参考,欢迎拍砖。 软林至尊,Fans同盟。号令天下,莫敢不从。 Fans 1.老师教--这里的老师指大学教师。 优点:现场讲课,不懂可以问。 缺点:理…...
做淘客网站用备案吗/交换链接营销的典型案例
1.jboss和cxf不兼容,最好集成axis,需要在WEB-INF下增加下面文件,文件配置 <?xml version"1.0" encoding"UTF-8"?> <deployment xmlns"http://xml.apache.org/axis/wsdd/" xmlns:java"http://x…...
美食网站建设策划书/企业网站排名优化方案
2018年谷歌推出了跨平台框架Flutter,一时间让各位技术开发者兴趣暴涨(因为做过混合开发的程序猿早就被js的性能低效,rn的js桥接麻烦,weex的社区小和坑多。。。等技术而感到焦头烂额)。随着高性能的跨平台框架Flutter正式版一发布,…...
创建网站建设/免费网站推广网站在线
面对这种问题,大家应该都有这样的疑惑,我全部都是byte类型的数据,而且两个相加也并没超过byte类型的表示范围,但是为什么会报错Type mismatch: cannot convert from int to byte? 接下来为大家解惑: n,m,…...
有网站建设需求的网站/互联网舆情监测系统
1、cardinality语法es,去重,cartinality metric,对每个bucket中的指定的field进行去重,取去重后的count,类似于count(distcint)cardinality,count(distinct),5%的错误率,性能在100ms…...