webconfig.java_基于JavaConfig配置的Spring MVC的构建

上一篇讲了基于XML配置的构建,这一篇讲一讲基于JavaConfig的构建。为什么要写这篇文章,因为基于xml配置的构建,本人认为很麻烦,要写一堆的配置,不够简洁,而基于JavacConfig配置的构建符合程序员的编码习惯,是SpringMVC以后的趋势。不是说基于XML配置的不好,毕竟现在很多已有的项目都是基于XML的,只是基于JavaConfig配置的更优化,而且两种方式可以鱼和熊掌兼得。但要知道的是,基于JavaConfig配置构建的Spring MVC项目只能部署到支持Servlet 3.0服务器上面。

进入正题,开始搭建项目:

搭建环境:

1. IDEA

2. Maven

3. Tomcat

搭建步骤:

1. 创建maven-archetype-webapp项目,这个项目是maven的web项目

2.在pom中添加sping mvc相关的依赖包,这个依赖包是我自己使用的,包含了单元测试和相关的mvc mock包:

org.springframework

spring-webmvc

4.3.9.RELEASE

javax.servlet

jstl

1.2

org.springframework.data

spring-data-jpa

1.10.1.RELEASE

javax.servlet

javax.servlet-api

3.0.1

provided

junit

junit

RELEASE

org.springframework

spring-test

4.3.8.RELEASE

test

javax.servlet.jsp

javax.servlet.jsp-api

2.3.1

org.mockito

mockito-core

2.8.47

3.将DispatcherSevlet配置在Servlet容器中

public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

/*加载后端的中间层和数据层组件*/

@Override

protected Class>[] getRootConfigClasses() {

return new Class>[]{RootConfig.class};

}

/*加载web组件,控制器、试图解析器、处理器映射*/

@Override

protected Class>[] getServletConfigClasses() {

return new Class>[]{WebConfig.class};

}

@Override

protected String[] getServletMappings() {

return new String[]{"/"};

}

}

示例代码中要知道的是,任何扩展了AbstractAnnotationConfigDispatcherServletInitializer的类都会自动配置DispatcherServlet和Spring应用上下文。实际上,AbstractAnnotationConfigDispatcherServletInitializer会同时创建DispatcherServlet和ContextLoaderListener。getServletConfigClasses()方法返回的带有@Configuration注解的类会用来定义DispatcherServlet应用上下文中的bean。getRootConfigClasses()方法返回的带有@Configuration注解的类会用来定义ContextLoaderListener应用上下文中的bean。

4.创建WebConfig类

@Configuration

@EnableWebMvc

@ComponentScan("spittr.web")

public class WebConfig extends WebMvcConfigurerAdapter {

/*配置视图解析器*/

@Bean

public ViewResolver viewResolver(){

InternalResourceViewResolver resolver = new InternalResourceViewResolver();

resolver.setPrefix("/WEB-INF/views/");

resolver.setSuffix(".jsp");

resolver.setExposeContextBeansAsAttributes(true);

return resolver;

}

/*配置静态资源的处理*/

@Override

public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {

configurer.enable();

}

}

5.创建RootConfig类

@Configuration

@ComponentScan(basePackages = {"spittr"},excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,value = EnableWebMvc.class)})

public class RootConfig {

}

6,到这里配置已经结束。怎样创建Controller和运行请参考上一篇基于XML配置的Spring MVC。

7.最后附上源码:源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值