【问题标题】:Embedded Jetty + Spring MVC main methodEmbedded Jetty + Spring MVC 主方法
【发布时间】:2015-10-18 08:47:31
【问题描述】:

我正在使用 Embedded Jetty 和 Spring MVC,并且我正在通过 main 函数启动我的 WebApplication。 我不喜欢它的外观,它不是很干净,我觉得我做错了什么,即使它工作得很好。 我的问题是我想在 main 方法之外初始化 ServerHolder、ServletContextHandler 和 Server 对象,但我不能这样做,因为 DispatcherServlet 需要和 ApplicationContext。

有什么想法吗?

public static void main(String[] args) throws Exception {

    AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();
    applicationContext.register(EPConfiguration.class);

    ServletHolder servletHolder = new ServletHolder(new DispatcherServlet(applicationContext));

    ServletContextHandler context = new ServletContextHandler();
    context.setContextPath("/");
    context.addServlet(servletHolder, "/*");

    BasicConfigurator.configure();

    Server server = new Server();
    server.setHandler(context);
    //HTTP
    ServerConnector connector = new ServerConnector(server);
    connector.setPort(9999);

    server.setConnectors(new Connector[]{connector});
    server.start();
    server.join();
}

【问题讨论】:

    标签: spring-mvc embedded-jetty


    【解决方案1】:

    我不熟悉 Jetty,但您可以通过以下方式设置和初始化 DispatcherServlet:

    1. 声明一个实现抽象类AbstractAnnotationConfigDispatcherServletInitializer的java类(通常称为WebAppInitializer)。
    2. 实现它的抽象方法——getRootConfigClasses()(返回配置应用程序上下文的类)、getServletConfigClasses()(返回配置ServletContext的类)和getServletMappings()(设置DispatcherServletmapping)。
    3. 我通常将配置ServletContext的类称为WebConfig。您应该使用@Configuration 和@EnableWebMvc 对其进行注释。另外你应该用它来定义一个ViewResolver bean:

    ```java

    @Bean
    public ViewResolver viewResolver() {
       InternalResourceViewResolver resolver = new InternalResourceViewResolver();
       resolver.setPrefix("/WEB-INF/view"):
       resolver.setSuffix(".jsp");
       resolver.setExposeContextBeansAsAttributes(true);
       return resolver;
    }
    

    ```

    【讨论】:

      猜你喜欢
      • 2015-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      相关资源
      最近更新 更多