Spring mvc 嵌入式码头&x2B;springmvc主方法
我正在使用嵌入式Jetty和SpringMVC,我正在通过主功能启动我的Web应用程序。 我不喜欢它的外观,它不是很干净,我觉得我做错了什么,即使它工作得很好。 我的问题是我想在main方法之外初始化ServerHolder、ServletContextHandler和服务器对象,但我不能这样做,因为DispatcherServlet需要和ApplicationContext 有什么想法吗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
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
:
AbstractAnnotationConfigDispatcherServletInitializer
(通常称为WebAppInitializer
)getRootConfigClasses()
(返回配置应用程序上下文的类)、getServletConfigClasses()(返回配置ServletContext的类)和getServletMappings()
(设置DispatchersServlet
映射)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;
}
```