为了账号安全,请及时绑定邮箱和手机立即绑定

Spring之路(17)–全部使用注解配置SpringMVC

标签:
Spring

背景

上一篇文章详细讲述了使用xml配置SpringMVC的流程,不外乎是指定DispatcherServlet、指定容器配置文件,然后编写控制器和视图。

使用注解配置也类似,我们得有一个类负责指定DispatcherServlet,然后有个配置类负责配置容器同时开启对控制器等bean的扫描,最后编写控制器和视图页面完成具体功能。下面具体实现下。

新建项目

新建项目SpringMvcSecond,这个流程跟上一篇基本一致,就是换了个项目名,所以不再赘述。

唯一区别的是,本篇不再使用web.xml配置项目,所以删除web.xml文件。

新建SpringMVC初始化器

上一篇的项目我们实际上是通过web.xml对项目进行了初始化配置,包括指定DispatcherServlet、指定容器配置文件,本篇我们改为使用初始化器,代码如下,初始化器通过继承AbstractAnnotationConfigDispatcherServletInitializer实现了web项目初始化时进行初始化操作的功能。

package org.maoge.second;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
   @Override
   protected Class<?>[] getRootConfigClasses() {
   	return null;
   }
   @Override
   protected Class<?>[] getServletConfigClasses() {
   	// 引入配置类
   	return new Class[] { SpringConfig.class };
   }
   @Override
   protected String[] getServletMappings() {
   	// 配置url映射路径
   	return new String[] { "*.do" };
   }
}

注意该类指定了接受以.do为结尾的请求,且配置类为SpringConfig。

新建配置类

对容器的配置实际上只需要开启对包的扫描即可:

package org.maoge.second;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(value = "org.maoge.second")
public class SpringConfig {
}

新建控制器与视图页面

这个与上一篇也基本类似,不再详细介绍

package org.maoge.second;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
	@RequestMapping("/hello")
	public ModelAndView hello() {
		ModelAndView mv=new ModelAndView();	
		mv.setViewName("hello.jsp");
		return mv;
	}
}
<%@ page language="java" contentType="text/html; charset=UTF8"
	pageEncoding="UTF8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF8">
<title></title>
</head>
<body>
hello:springmvcsecond
</body>
</html>

启动运行

启动后依然报错

More than one fragment with the name [spring_web] was found. This is not legal with relative ordering.

这次怒了,删除下图中两个jar包后解决问题:
在这里插入图片描述
验证成功!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消