2014-02-11 2 views
3

JavaConfig에서 작동하는 간단한 Spring 애플리케이션을 얻지 못하는 것 같습니다.XML에서 Java로 스프링 구성이 작동하지 않음

public class WebApp extends AbstractAnnotationConfigDispatcherServletInitializer { 

    private static final Logger logger = Logger.getLogger(WebApp.class); 

    @Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class<?>[0]; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return new Class<?>[]{ WebAppConfig.class }; 
    } 

    @Override 
    protected String[] getServletMappings() { 
     return new String[]{ "/" }; 
    } 

    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     logger.debug("onStartup"); 
     super.onStartup(servletContext);//MUST HAVE 
     servletContext.setInitParameter("defaultHtmlEscape", "true"); 
    } 

    @Configuration 
    @EnableWebMvc 
    @ComponentScan("com.doge.controller") 
    public static class WebAppConfig extends WebMvcConfigurerAdapter { 
    } 
} 

그리고 컨트롤러 : 아니다 "로컬 호스트 : 8080":

package com.doge.controller; 

@RestController 
public class HelloController { 

    @RequestMapping("/") 
    public String sayHello() { 
     System.out.println("something"); 
     return "index"; 
    } 
} 

난 항상 "8080/빌드 로컬 호스트"에 404을 얻는다. 아무 것도 기록되거나 인쇄되지 않습니다. "INFO : 서버 시작 시간 : 538 ms"입니다.

답변

0

Spring 웹 응용 프로그램을 초기화 할 수있는 옵션은 거의 없습니다.

public class SpringAnnotationWebInitializer extends AbstractContextLoaderInitializer { 

    @Override 
    protected WebApplicationContext createRootApplicationContext() { 
    AnnotationConfigWebApplicationContext applicationContext = 
     new AnnotationConfigWebApplicationContext(); 
    applicationContext.register(WebAppConfig.class); 
    return applicationContext; 
    } 

} 

다른 옵션은 여기에서 찾을 수 있습니다 : http://www.kubrynski.com/2014/01/understanding-spring-web-initialization.html

가장 쉬운은 다음과 같다