Spring设置
你能嵌入Jetty到你的项目中,也可以使用几乎所有的IoC类型框架,包括Spring。如果所有你想做的是在你的Spring中设置Jetty Server,那么下面的xml片段可以作为一个例子。如果你想使用spring取代jetty-xml也是可以的,但这样将不能利用模块系统的其余部分。
Jetty-Spring模块
一个Jetty Spring模块的框架能通过模块机制激活。例如:
$ java -jar start.jar --add-to-startd=spring
这(或者使用--add-to-start=spring命令)创建一个${jetty.home}/lib/spring文件夹和放置jetty-spring集成jar到里面。它不提供spring jars和他们的依赖,你将需要下载这些并且放置他们到jetty的classpath - 你能用被spring.mod创建的${jetty.home}/lib/spring。
用Spring配置Jetty
通过Spring配置Jetty就是一个将API作为Spring beans调用的问题。下卖弄是一个例子,模仿默认jetty启动配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!-- =============================================================== -->
<!-- Configure the Jetty Server with Spring -->
<!-- This file is the similar to jetty.xml, but written in spring -->
<!-- XmlBeanFactory format. -->
<!-- =============================================================== -->
<beans>
<bean id="contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
<bean id="server" name="Main" class="org.eclipse.jetty.server.Server" init-method="start" destroy-method="stop">
<constructor-arg>
<bean id="threadPool" class="org.eclipse.jetty.util.thread.QueuedThreadPool">
<property name="minThreads" value="10"/>
<property name="maxThreads" value="50"/>
</bean>
</constructor-arg>
<property name="connectors">
<list>
<bean id="connector" class="org.eclipse.jetty.server.ServerConnector">
<constructor-arg ref="server"/>
<property name="port" value="8080"/>
</bean>
</list>
</property>
<property name="handler">
<bean id="handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
<list>
<ref bean="contexts"/>
<bean id="defaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</list>
</property>
</bean>
</property>
<property name="beans">
<list>
<bean id="deploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
<property name="contexts" ref="contexts"/>
<property name="appProviders">
<list>
<bean id="webAppProvider" class="org.eclipse.jetty.deploy.providers.WebAppProvider">
<property name="monitoredDirName" value="webapps"/>
<property name="scanInterval" value="1"/>
<property name="extractWars" value="true"/>
</bean>
</list>
</property>
</bean>
</list>
</property>
</bean>
</beans>