我将Jetty配置为从spring上下文启动web应用程序,e.i。有两种情况:
以下是外部背景的定义:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="servletHolder" class="org.eclipse.jetty.servlet.ServletHolder">
<constructor-arg name="name" value="dispatcher"/>
<constructor-arg name="servlet" value="org.springframework.web.servlet.DispatcherServlet"/>
<property name="initParameters">
<map>
<entry key="contextConfigLocation" value="classpath:dispatcher-context.xml"/>
</map>
</property>
<property name="initOrder" value="0"/>
</bean>
<bean id="servletHandler" class="org.eclipse.jetty.servlet.ServletHandler">
<property name="servlets">
<array>
<ref bean="servletHolder"/>
</array>
</property>
<property name="servletMappings">
<list>
<bean class="org.eclipse.jetty.servlet.ServletMapping">
<property name="servletName" value="dispatcher"/>
<property name="pathSpec" value="/*"/>
</bean>
</list>
</property>
</bean>
<bean id="contextHandler" class="org.eclipse.jetty.servlet.ServletContextHandler">
<property name="contextPath" value="/spring"/>
<property name="servletHandler" ref="servletHandler"/>
</bean>
<bean class="org.eclipse.jetty.server.Server" init-method="start" destroy-method="stop">
<constructor-arg name="port" value="9999"/>
<property name="handler" ref="contextHandler"/>
</bean>
</beans>
它指的是dispatcher-context.xml
是“内部”。
到目前为止它工作正常,除非我需要从外部上下文中将bean从内部上下文注入到控制器的bean中。
有没有办法在外部作用域中定义bean并将其注入控制器? 它可用于单元测试或将此服务器用作更大的现有应用程序的一部分。
完整代码可在此处找到:https://github.com/zjor/embedded-jetty/tree/master/spring-mvc-jetty
答案 0 :(得分:0)
到目前为止,我找到了一个解决方法,我使用了Jersey和Jetty的组合,并通过Spring配置了所有内容。
此处提供代码:https://github.com/zjor/embedded-jetty/tree/master/jersey-jetty