31

按照本教程,我可以使用以下依赖项启动运行 Jetty 的 spring-boot。

    <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>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>

但是,我如何配置 Jetty 服务器,例如:

  1. 服务器线程(队列线程池)
  2. 服务器连接器
  3. HTTPS 配置。
  4. Jetty 中可用的所有这些配置...?

有没有简单的方法可以在

  1. 应用程序.yml?
  2. 配置类?

任何例子将不胜感激。

非常感谢!!

4

5 回答 5

15

有一些 servlet 容器的通用扩展点以及将 Jetty API 调用插入其中的选项,所以我假设你想要的一切都触手可及。一般建议可以在 docs中找到。Jetty 还没有受到太多关注,因此声明式配置的可用选项可能与 Tomcat 不同,并且肯定它不会被太多使用。如果您想帮助改变这一点,那么欢迎提供帮助。

于 2013-12-08T18:31:45.713 回答
4

可以从http://howtodoinjava.com/spring/spring-boot/configure-jetty-server/以编程方式配置 Jetty(部分)

@Bean
public JettyEmbeddedServletContainerFactory  jettyEmbeddedServletContainerFactory() {
    JettyEmbeddedServletContainerFactory jettyContainer = 
        new JettyEmbeddedServletContainerFactory();

    jettyContainer.setPort(9000);
    jettyContainer.setContextPath("/home");
    return jettyContainer;
}
于 2017-05-17T10:09:19.237 回答
0

Spring Boot通过属性文件提供以下Jetty特定配置:-

server:
  jetty:
    connection-idle-timeout: # Time that the connection can be idle before it is closed.
    max-http-form-post-size: # Maximum size of the form content in any HTTP post request e.g. 200000B
    accesslog:
      enabled: # Enable access log e.g. true
      append: # Enable append to log e.g. true
      custom-format: # Custom log format
      file-date-format: # Date format to place in log file name
      filename: # Log file name, if not specified, logs redirect to "System.err"
      format: # Log format e.g ncsa
      ignore-paths: # Request paths that should not be logged
      retention-period: # Number of days before rotated log files are deleted e.g. 31
    threads:
      acceptors: # Number of acceptor threads to use. When the value is -1, the default, the number of acceptors is derived from the operating environment.
      selectors: # Number of selector threads to use. When the value is -1, the default, the number of selectors is derived from the operating environment.
      min: # Minimum number of threads e.g. 8 
      max: # Maximum number of threads e.g. 200
      max-queue-capacity: # Maximum capacity of the thread pool's backing queue. A default is computed based on the threading configuration.
      idle-timeout: # Maximum thread idle time in millisecond e.g. 60000ms      

更多配置细节请参考 Spring Boot 官方文档

于 2021-06-12T04:02:35.047 回答
0

截至 2020 年,在开发新版本时,您需要做的是配置 Jetty 端口、上下文路径和线程池属性。我在 Spring Boot 版本 2.1.6 上对此进行了测试,而我提到的文档是针对版本 2.3.3

在配置文件中创建服务器工厂 bean。

    @豆
    公共 ConfigurableServletWebServerFactory webServerFactory() {
        JettyServletWebServerFactory factory = new JettyServletWebServerFactory();
        factory.setPort(8080);
        factory.setContextPath("/my-app");
        QueuedThreadPool threadPool = new QueuedThreadPool();
        线程池.setMinThreads(10);
        线程池.setMaxThreads(100);
        线程池.setIdleTimeout(60000);
        factory.setThreadPool(threadPool);
        返厂;
    }

以下是 Spring Docs 的链接: customizing-embedded-containers

于 2020-08-18T06:58:07.317 回答
0

如果有人使用 Spring Boot - 您可以轻松地在 application.properties 中配置它:

server.max-http-post-size=n

其中 n 是您希望设置此属性的最大大小。例如我使用:

server.max-http-post-size=5000000
于 2017-11-15T07:56:07.617 回答