如何在spring-boot中配置Jetty(很容易?)

时间:2013-12-08 14:20:36

标签: jetty spring-boot

通过遵循本教程,我可以使用以下依赖项启动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中可用的所有配置......?
  5. 中有一个简单的方法吗?
    1. application.yml?
    2. 配置类?
    3. 非常感谢任何一个例子。

      非常感谢!!

5 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

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

server.max-http-post-size=n

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

server.max-http-post-size=5000000

答案 3 :(得分:0)

从2020年开始,当使用较新版本时,这是您需要做的,以配置Jetty端口,上下文路径和线程池属性。我在Spring Boot版本2.1.6上对此进行了测试,而我所指的文档是版本2.3.3的

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


    @Bean
    public ConfigurableServletWebServerFactory webServerFactory() {
        JettyServletWebServerFactory factory = new JettyServletWebServerFactory();
        factory.setPort(8080);
        factory.setContextPath("/my-app");
        QueuedThreadPool threadPool = new QueuedThreadPool();
        threadPool.setMinThreads(10);
        threadPool.setMaxThreads(100);
        threadPool.setIdleTimeout(60000);
        factory.setThreadPool(threadPool);
        return factory;
    }

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

答案 4 :(得分: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 documentation