【问题标题】:Spring scopes in embedded web app in Jetty serverJetty 服务器中嵌入式 Web 应用程序中的 Spring 范围
【发布时间】:2016-04-12 15:49:48
【问题描述】:

我将 Jetty 配置为从 spring 上下文启动 web 应用程序,例如有两种情况:

  • 运行 Jetty 的外部上下文
  • 由 Spring DispatcherServlet 运行的内部

这里是外部上下文的定义:

<?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

【问题讨论】:

    标签: spring jetty embedded-jetty


    【解决方案1】:

    到目前为止,我已经找到了一种解决方法,我将 Jersey 与 Jetty 结合使用,并通过 Spring 配置了所有内容。

    代码在这里:https://github.com/zjor/embedded-jetty/tree/master/jersey-jetty

    【讨论】:

      猜你喜欢
      • 2013-09-03
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 2020-03-17
      相关资源
      最近更新 更多