zoukankan      html  css  js  c++  java
  • Jetty启动配置解析

    1. jetty概述

    维基百科:Jetty是一个纯粹的基于Java的网页服务器和Java Servlet容器。

    Jetty Server是一个Connector集合和一个Handler集合间的管道,Connector用于接收HTTP连接,Handler服务来自连接的请求并作出响应,Jetty Server使用来自一个线程池的线程来处理这些工作。

    2. spring-jetty启动配置

    jetty可以通过配置文件的方式启动,按照spring加载配置文件的方式即可:

    ctx = new ClassPathXmlApplicationContext("classpath:spring-jetty.xml");
    

    jetty.xml主要完成Server类ThreadPool、连接器ConnectorHandler等主要组件的配置。

    2.1 Server类
    <bean id="Server" class="org.eclipse.jetty.server.Server" init-method="start" destroy-method="stop">
    

    Server类作为jetty的入口,其初始化方法是start,销毁方法是stop。如果以java代码形式也可以,如下:

        public static void main(String[] args) throws Exception {
            startJetty(PORT);
        }
    
        private static void startJetty(int port) throws Exception {
            LOGGER.debug("Starting server at port {}", port);
            Server server = new Server(port);
            //配置, 略
            ...
            addRuntimeShutdownHook(server);
            //启动
            server.start();
            logger.info("Server started at port {}", port);
            server.join();
        }
    
        //系统关闭销毁操作
        private static void addRuntimeShutdownHook(final Server server) {
            Runtime.getRuntime().addShutdownHook(new Thread(() -> {
                if (server.isStarted()) {
                    server.setStopAtShutdown(true);
                    try {
                        // 销毁
                        server.stop();
                    } catch (Exception e) {
                        System.out.println("Error while stopping jetty server: " + e.getMessage());
                    }
                }
            }));
        }
    
    
    2.2 Connector

    Connector,它负责接受客户端的连接请求,基于NIO方式。

    2.3 Handler

    handler链,为Server所管理,请求的具体执行由链中的handler负责。

  • 相关阅读:
    生产uuid
    将Linux命令的结果作为下一个命令的参数
    java中获取接口(方法)中的参数名字(eclipse设置编译参数)(java8 javac -parameters)
    枚举类valueOf方法的疑问
    svn本地客户端和eclipse插件对应不上解决
    rpc框架
    4中map遍历的方法
    java位运算(操作)的使用
    Redis性能点
    关于一次性能调优的反思
  • 原文地址:https://www.cnblogs.com/eaglediao/p/9451638.html
Copyright © 2011-2022 走看看