2017-06-12 86 views
0

我想要做一個例子,將xml配置更改爲Java MVC的配置。但我的簡單例子不起作用。在服務器上運行此項目時,在控制檯上看不到任何bean初始化或調度程序servlet名稱。 和我上運行的http://localhost:8080/Servlet3Example/春天MVC Java配置問題

我創建了一個Maven項目和下面的404錯誤是我的代碼:

package com.project.config; 
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; 

public class MyDispatcherServlet extends  AbstractAnnotationConfigDispatcherServletInitializer { 

@Override 
protected Class<?>[] getRootConfigClasses() { 
    System.out.println("get root config"); 
    //return new Class[]{RootConfig.class}; 
    return null; 
} 

@Override 
protected Class<?>[] getServletConfigClasses() { 
    System.out.println("get web config"); 
    return new Class[]{WebConfig.class}; 
} 

@Override 
protected String[] getServletMappings() { 
    System.out.println("in dispatcher servlet"); 
    return new String[] {"/"}; 
} 

}

而且WebConfig是:

package com.project.config; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.web.servlet.ViewResolver; 
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
import org.springframework.web.servlet.view.InternalResourceViewResolver; 

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages={"com.project.controllers"}) 
public class WebConfig extends WebMvcConfigurerAdapter { 

@Bean 
public ViewResolver viewResolver() { 
    InternalResourceViewResolver viewResolver = new  InternalResourceViewResolver(); 
    viewResolver.setSuffix(".jsp"); 
    viewResolver.setPrefix("/WEB-INF/views/"); 
    return viewResolver; 
} 

@Override 
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
    configurer.enable(); 
} 

}

And controller:

package com.project.controllers; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

@Controller 
public class HomeController { 

@RequestMapping(value="/",method=RequestMethod.GET) 
public String home() 
{ 
    return "home"; 
} 
} 
+0

這一切似乎看起來沒什麼問題。你的服務器日誌中是否有錯誤?還可以嘗試在MyDispatcherServlet和MyConfig中添加一些斷點,以查看這些斷點是否已初始化。 – Plog

+0

嘗試'http:// localhost:8080 /' – jmw5598

+0

不,MyDispatcherServlet似乎沒有初始化。配置也是,控制檯中沒有bean的引用。在控制檯中沒有錯誤。 – Megha

回答

0

能否請您更改@ComponentScan@ComponentScan(basePackages={"com.project.*"})