Jetty的初始化工作从Server.java开始,看到start方法是protected的时候楞了一下。不过发现Jetty.java是继承于Server,这个是具体项目中的实例,JettyService负责对Jetty的初始化。
1. 启动QueuedThreadPool,这是线程池,后面的接收请求分发请求都会由线程池统一管理,所以QueuedThreadPool有点像资源分配中心。
2. 初始化Handlers,这东西和Struts中的interceptor,Tomcat中的Valve有点相似,用链的方式进行执行。这种设计方式灵活,当有新的组件插入时只要继承Handler然后配置在配置文件中就可以生效了,不需要时只要在配置文件中去掉就可以了(有点像硬件的热插拔),保证框架的高扩展性。所以很多应用也非常乐于用这种模式来设计。
3. 初始化Connector,如果Handler是主内的话,Connector就是主外了,Connector主要用来接收客户从浏览器发过来的请求,然后丢给Handler处理。