您的位置:首页 > 编程语言 > Java开发

Spring4Mvc纯注解启动,无web.xml

2017-01-03 09:11 183 查看
科技优家 2016-12-31 20:12

基于Spring4新特性,尝试了一下纯注解启动Mvc

主要类如下图:

RootConfig:

/**
* RootConfig
* @author zoe
*
*/
@Configuration
@ComponentScan(basePackages={"com.spittr"},excludeFilters={@Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)})
public class RootConfig {

}

WebConfig:

/**
*
* @author zoe
*
*/
@Configuration
@EnableWebMvc
@ComponentScan("com.spittr.web")
public class WebConfig extends WebMvcConfigurerAdapter {

@Bean
public ViewResolver viewResolver{
InternalResourceViewResolver resolver = new InternalResourceViewResolver;//jsp视图解析器
resolver.setPrefix("/WEB-INF/view/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}

/**
* 配置静态资源的处理
* 将请求交由Servlet处理,不经过DispatchServlet
*/
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){
configurer.enable;
}

}

WebAppInitializer:

/**
* web初始化类,替代xml
* 继承Abs..类后,会同时创建DispatcherServlet和ContextLoaderListener
* 前提:Servlet3.0
* @author zoe
*
*/
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

/**
* 配置ContextLoaderListener
*/
@Override
protected Class<?> getRootConfigClasses {
return new Class<?>{RootConfig.class};
}

/**
* 配置DispatcherServlet
*/
@Override
protected Class<?> getServletConfigClasses {
return new Class<?>{WebConfig.class};
}

/**
* 配置ServletMappings
*/
@Override
protected String getServletMappings {
return new String  {"/"};
}

}

HomeController:

@Controller
public class HomeController {

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

经过测试发现tomcat7.0.12暂时不支持,官方说tomcat7已经支持servlet3.0了,应该就可以使用,原因未知。

我后来使用tomcat8.5.9,就可以启动成功。

本文为头条号作者发布,不代表今日头条立场。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐