2.2. Jetty配置方式
除了Jetty配置及部署(一)介绍的命令行参数、ini和XML(Jetty IoC)文件的默认配置方式外,Jetty也为我们提供了其它灵活的配置方案。
由于Jetty的服务器对象(如Server、链接器、Context等)都是POJO,因此从理论上讲,我们可以采用编程的方式配置Jetty,这便是嵌入式Jetty所完成的工作。不仅如此,我们还可以采用其它IoC框架配置Jetty服务器。例如官方即支持通过Spring容器进行配置及实例化Jetty服务器。只要启动模块中包含了spring(模块名),我们就可以直接使用Spring的Bean配置文件来替代Jetty IoC文件。在讲解Web应用部署时,你将会看到一个采用Spring进行部署配置的示例。
总之,Jetty对IoC框架集成的机制非常灵活,只要愿意,我们可以非常容易的实现自己的替代方案,具体实现方式可以参见“扩展篇”。
注意:与Tomcat相比,Jetty的可扩展性做的非常出色。除了它的模块化架构,各个组件的可扩展性也充分说明了这一点。这也是Jetty进行嵌入式开发如此便捷的原因,而Tomcat的服务器生命周期处理,有部分是与其Catalina容器配置解析耦合在一起的,因此如果要进行嵌入式开发,则需要做额外的适配工作。
2.3. Jetty配置方式
本节主要讲解Jetty相关的启动配置,包括加载规则和常见的启动参数。
2.3.1. 加载规则
从前面的讲解我们知道,Jetty有三种方式添加命令行启动参数:命令行添加、start.ini、start.d/*.ini(大多数情况下,start.ini和start.d不必两者都保留,只需要两者择其一即可)。对于这三种方式,如果存在重复的配置,Jetty将自行进行覆盖。其具体规则是命令行的优先级最高,start.d目录次之,start.ini文件最低。这也符合我们对配置灵活性的要求,保证最灵活的方式优先级最高。
2.3.2. 常见启动参数
下面我们整理了部分常用的Jetty启动参数及其用途说明,你可以根据需要采用任意一种方式配置使用,如表2-1所示。
注意:所有JVM相关的参数也可以直接通过ini文件设置,此处不再赘述。
表2-1