当前位置: 首页 > news >正文

学生自做网站优秀作品站长之家排行榜

学生自做网站优秀作品,站长之家排行榜,内容营销理论,怎么做钓qq密码网站58、嵌入式Servlet容器切换web服务器与定制化 # 嵌入式Servlet容器切换与定制化 ## 切换Web服务器 ### 1. 原理 Spring Boot默认使用Tomcat作为嵌入式Servlet容器。切换其他容器(如Jetty或Undertow)的原理如下: #### 自动配置类 - ServletWeb…

58、嵌入式Servlet容器切换web服务器与定制化

# 嵌入式Servlet容器切换与定制化

## 切换Web服务器

### 1. 原理

Spring Boot默认使用Tomcat作为嵌入式Servlet容器。切换其他容器(如Jetty或Undertow)的原理如下:

#### 自动配置类

- `ServletWebServerFactoryAutoConfiguration`是关键的自动配置类,负责创建`ServletWebServerFactory`。

#### 条件判断

- 根据项目中引入的依赖,自动配置类会判断系统中存在哪些Web服务器相关的类。

#### 工厂类

- Spring Boot提供了多个`ServletWebServerFactory`实现:

  - `TomcatServletWebServerFactory`

  

  - `JettyServletWebServerFactory`

  

  - `UndertowServletWebServerFactory`

- 根据条件判断,选择相应的工厂类创建对应的Web服务器。

### 2. 切换步骤

#### 排除默认Tomcat依赖

在`pom.xml`中排除`spring-boot-starter-tomcat`:

```xml

<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>

```

#### 添加目标服务器依赖

- **切换为Jetty**:

  ```xml

  <dependency>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-jetty</artifactId>

  </dependency>

  ```

- **切换为Undertow**:

  ```xml

  <dependency>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-undertow</artifactId>

  </dependency>

  ```

### 3. 示例

#### 切换为Jetty

```xml

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-web</artifactId>

    <exclusions>

        <!-- 排除Tomcat -->

        <exclusion>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-tomcat</artifactId>

        </exclusion>

    </exclusions>

</dependency>

<!-- 引入Jetty -->

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-jetty</artifactId>

</dependency>

```

重新启动应用,Spring Boot将使用Jetty作为嵌入式Servlet容器。

## 定制嵌入式Servlet容器

### 1. 通过配置文件

在`application.properties`或`application.yml`中配置服务器属性:

```properties

# 修改端口

server.port=8081

# 设置上下文路径

server.servlet.context-path=/myapp

# Tomcat特有配置

server.tomcat.uri-encoding=UTF-8

```

### 2. 实现定制器接口

实现`WebServerFactoryCustomizer`接口,定制`ServletWebServerFactory`:

```java

@Configuration

public class CustomServletContainerConfig implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {

    @Override

    public void customize(ConfigurableServletWebServerFactory factory) {

        // 设置端口

        factory.setPort(8082);

        

        // 设置访问日志

        factory.setAccessLogEnabled(true);

        

        // 其他定制...

    }

}

```

### 3. 示例

#### 定制Jetty容器

```java

@Configuration

public class JettyCustomizer implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {

    @Override

    public void customize(ConfigurableServletWebServerFactory factory) {

        if (factory instanceof JettyServletWebServerFactory) {

            JettyServletWebServerFactory jettyFactory = (JettyServletWebServerFactory) factory;

            

            // 设置Jetty特有配置

            jettyFactory.addServerCustomizers(server -> {

                // 添加连接器配置

                ServerConnector connector = new ServerConnector(server);

                connector.setPort(8083);

                server.addConnector(connector);

            });

        }

    }

}

```

通过以上方式,可以灵活地切换和定制Spring Boot的嵌入式Servlet容器,满足不同的应用需求。

http://www.hkea.cn/news/395781/

相关文章:

  • 专门做图片的网站吗如何建网站要什么条件
  • 卢氏县住房和城乡建设局网站站长统计 站长统计
  • 济南 网站制作旺道营销软件
  • 新上线网站如何做搜索引擎站长素材网站
  • 做网站编辑深圳疫情防控最新消息
  • PHP网站开发项目式教程google下载手机版
  • 国外专门用于做网站图片的做网站要多少钱
  • 网站维护费用计入什么科目媒介星软文平台官网
  • 网站建设seo 视频做网站哪个平台好
  • 旅行社网站建设方案论文百度seo公司
  • 长沙网站建设与维护百度开户联系方式
  • 做pcr查基因序列的网站南京百度网站快速优化
  • 数据服务网站策划方案关键词快速优化排名软件
  • 响应式网站缺点学大教育培训机构电话
  • 江苏天德建设工程有限公司网站一个平台怎么推广
  • 石家庄做网络推广的网站推广平台收费标准
  • 贵阳天柱网站建设招聘域名注册平台有哪些
  • 网站建设电话营销百度问一问官网
  • 网站优化建设河南怎么关闭seo综合查询
  • 自贡做响应式网站开发公司google搜索引擎入口google
  • 东莞哪种网站推广好微信朋友圈推广文案
  • 现在学做网站赚钱吗东莞市优速网络科技有限公司
  • 宁津做网站公司宣传推广图片
  • 陕西的建设厅官方网站数据分析报告
  • 企业网站建设的定位互联网
  • 注册域名之后如何做网站优化清理大师
  • wordpress+在线播放推广seo网站
  • 丽水网站建设明恩玉杰网站开发框架
  • 如何设计网站中的上传功能搜索引擎技术基础
  • 余江区建设局网站百度搜索引擎优化的方法