Spring MVC Java Config问题

时间:2017-06-12 12:21:18

标签: spring-mvc

我正在尝试做一个示例,将xml配置更改为Spring MVC的Java配置。但我的简单例子不起作用。在服务器上运行此项目时,我无法在控制台上看到任何bean初始化或调度程序servlet名称。 我在运行http://localhost:8080/Servlet3Example/

时遇到404错误

我创建了一个maven项目,以下是我的代码:

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();
}

}

和控制器:

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";
}
}

1 个答案:

答案 0 :(得分:0)

是否可以将@ComponentScan更改为@ComponentScan(basePackages={"com.project.*"})