最近在研究spring的思想,看到了一个配置springMVC的方法是不用配置文件自动配置加载的,就想试一下,结果我的代码和源码一模一样,就是不进Controller层,求大牛指点
package spittr.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
/**
* Created by Administrator on 2017/4/18.
*/
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[]{RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{WebConfig.class};
}
/**
* 将DispatcherServlet映射到"/"
*
* @return
*/
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
这个相当于web.xml
package spittr.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;
/**
* Created by Administrator on 2017/4/18.
*/
@Configuration
@EnableWebMvc
@ComponentScan("spittr.web")
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
try {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}catch (Exception e){
e.printStackTrace();
}
return null;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
package spittr.config;
/**
* Created by Administrator on 2017/4/18.
*/
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@Configuration
@ComponentScan(basePackages = {"spittr"},
excludeFilters = {
@Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class)
})
public class RootConfig {
}
这是我的Controller文件
package spittr.controller;
/**
* Created by Administrator on 2017/4/18.
*/
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
@Controller("home")
public class HomeController {
@RequestMapping(value = "/", method = GET)
public String home(HttpServletRequest request ) {
System.out.println("12312312321");
return "Home";
}
}
这是我的jsp文件
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2017/4/18
Time: 16:20
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Spittr</title>
</head>
<body>
<h1>Welcome to Spittr1</h1>
</body>
</html>
这是我的数据结构
然后后台也没有报任何错误,配置了log4j,级别是debug。
用debug跑项目的时候只是给我提示loaded classer are up to date。Nothing to reload。求大牛指点迷津啊