4

我有一个简单的问题,即如何在 Glassfish 服务器上运行使用 Spring 框架的应用程序?也就是说,如何让它在 Spring 容器的控制下运行?我是否需要扩展服务器或其他东西,我找不到太多关于此的信息,我读到的关于 OSGI 模块的东西,只是让我感到困惑。

4

2 回答 2

7

基本上,您使用 web.xml 通过侦听器启动 Spring,然后映射一个或多个 spring Dispatcher servlet。您在 中定义控制器 bean dispatcher-servlet.xml,注入您在 applicationContext 中定义的 bean,然后它从那里向下级联。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/applicationContext.xml
        etc etc
    </param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/myApp/*</url-pattern>
</servlet-mapping>
于 2012-04-10T18:48:14.310 回答
1

在部署描述符(web.xml)中,定义 Servlet 监听器和上下文参数。

上下文参数 - spring bean 文件的文件位置。(允许使用野生字符并拾取该野生字符选择下的一堆文件。)

侦听器 - 将侦听请求的弹簧类。不同的类可用于不同的目的。

<context-param>
    <param-name>contextConfigLocation</param-name>
            <!-- All file ends with Context.xml under web-inf folder --> 
    <param-value>WEB-INF/*Context.xml</param-value>
</context-param>


<listener>
    <display-name>Spring context loader</display-name>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    <!-- use following if you want to use request scope -->
    <!-- org.springframework.web.context.request.RequestContextListener -->
</listener>

<servlet>
    <servlet-name>servlet name</servlet-name>
    <servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class> 
</servlet>

<servlet-mapping>
    <servlet-name>name</servlet-name>
    <url-pattern>/URLName</url-pattern>
</servlet-mapping>
于 2012-04-12T09:38:55.197 回答