Spring4Mvc纯注解启动,无web.xml

转载 2017年01月03日 09:11:52

基于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,就可以启动成功。

本文为头条号作者发布,不代表今日头条立场。

举报

相关文章推荐

Spring MVC 无XML配置入门示例

Spring MVC 无XML(纯 Java)配置入门示例 本示例是从《Spring in Action, Fourth Edition》一书而来,涉及的是书中5.1节部分内容,书中其实说的很详细...

从无到有(一)----无web.xml全注解SpringMVC框架搭建

1.配置结构2.RootConfig(application-context.xml)package com.ahu.gd.crms.config; import com.ahu.gd.crms.ut...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

WebApplicationInitializer

ServletContainInitalizer是Java EE 6中Servlet 3.0的新增接口;它的onStartup方法是一个web应用中我们的代码可以控制到的最早时间点。 它不需要通过we...

logback 配置详解(一)

一:根节点包含的属性:   scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 scanPeriod: 设置监测配置文件是否有...

Spring4中的WebApplicationInitializer理解

XML-based Approach要配置核心分发控制器Servlet,即DispatcherServlet,传统做法是直接使用xml进行配置,如下代码所示: dispatcher ...

spring框架的WebApplicationInitializer接口

疑问:为什么实现了WebApplicationInitializer接口的类,在自动时会自动执行其重写的onStart()方法?第一步: 查看接口WebApplicationInitializer的A...

自建一个WebApplicationInitializer

昨天的blog中提到,实现WebApplicationinitializer的类都可以被加载

关于 No Spring WebApplicationInitializer types detected on classpath卡死的解决办法

在做一个SSH项目的时候Tomcat遇到了卡死,错误如下 信息: No Spring WebApplicationInitializer types detected on classpath 七月 ...

Servlet3.0新特性 很好很强大

Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布。该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发...

WebApplicationInitializer

针对public class DefaultConfigration implements WebApplicationInitializer 来想一个问题:为什么实现了WebApplicati...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)