Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 嵌入式码头&x2B;springmvc主方法_Spring Mvc_Embedded Jetty - Fatal编程技术网

Spring mvc 嵌入式码头&x2B;springmvc主方法

Spring mvc 嵌入式码头&x2B;springmvc主方法,spring-mvc,embedded-jetty,Spring Mvc,Embedded Jetty,我正在使用嵌入式Jetty和SpringMVC,我正在通过主功能启动我的Web应用程序。 我不喜欢它的外观,它不是很干净,我觉得我做错了什么,即使它工作得很好。 我的问题是我想在main方法之外初始化ServerHolder、ServletContextHandler和服务器对象,但我不能这样做,因为DispatcherServlet需要和ApplicationContext 有什么想法吗 public static void main(String[] args) throws Excepti

我正在使用嵌入式Jetty和SpringMVC,我正在通过主功能启动我的Web应用程序。 我不喜欢它的外观,它不是很干净,我觉得我做错了什么,即使它工作得很好。 我的问题是我想在main方法之外初始化ServerHolder、ServletContextHandler和服务器对象,但我不能这样做,因为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();
}

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

  • 声明一个java类,该类实现抽象类
    AbstractAnnotationConfigDispatcherServletInitializer
    (通常称为
    WebAppInitializer
  • 实现其抽象方法-
    getRootConfigClasses()
    (返回配置应用程序上下文的类)、getServletConfigClasses()(返回配置ServletContext的类)和
    getServletMappings()
    (设置
    DispatchersServlet
    映射)
  • 我通常将配置ServletContext的类调用为
    WebConfig
    。您应该使用
    @Configuration
    @EnableWebMvc
    对其进行注释。此外,您应该使用它来定义
    viewsolver
    bean:
  • ```爪哇

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