首页 > 其他分享 >一个简单SpringMVC的实现

一个简单SpringMVC的实现

时间:2023-04-04 19:57:35浏览次数:45  
标签:容器 return 请求 SpringMVC 实现 简单 save class

之前学习时候,是使用老师的自定义的一个SpringMVC模式,今天突然好奇,官方的SpringMVC架构咋弄,于是带着好奇的心去实现完成它

其实这个模式也比较简单

1:首先,我们创建一个maven,web的网页项目,JDK选择1.8版本

 

 

 2:在创建完之后,鼠标右键点击main目录,同时选择java和resource包按回车键

 

 

 3:找到pom.xml文件,把Servlet、Spring的依赖包丢进去

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>

4:Java目录下添加一个Controller包,里写一个控制类XXXController.java;

@Controller
public class UserController {
@RequestMapping("/save")
// @ResponseBody
public String save(){
System.out.println("保存中......");
return "Yes,you an successful";
}
}
//使用@ResponseBody注解,注解返回json格式数据()

5:把web.xml文件删除,写一个Servlet容器配置类ServletContainersInitConfig来代替Web.xml去完成请求——处理请求方法的这么一个映射关系;
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
//加载springmvc配置类
protected WebApplicationContext createServletApplicationContext() {
//初始化WebApplicationContext对象
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
//加载指定配置类
ctx.register(SpringMvcConfig.class);
return ctx;
}
//设置由springmvc控制器处理的请求映射路径
protected String[] getServletMappings() {
return new String[]{"/"};
}
//加载spring配置类
protected WebApplicationContext createRootApplicationContext() {
return null;
}
}
据目前了解,容器是一个Map集合,它的key是所标志注解的value值,Map的value通常为所映射个类以及类中处理这个请求的方法的处理类,
比如请求是http://localhost:8081/test/save=====>那么截取请求save然后去匹配容器中是否有这个key==》map(save,XXXHandleMapping)

此外,还需要再增加一个配置类
@Configuration
@ComponentScan("Controller")//扫描控制层目录,装进容器里
public class SpringMvcConfig {
}
作用是告诉电脑去扫描Controller目录下的包,把此目录下的文件扫描装进容器里面
6:最后一步便是便是配置好tomcat,启动

 

到这就代表前端请求与后端建立好链接请求

 

 

可能有许多不足之处,后面会不断完善,后面再记录如何使用mybatis来实现链接数据库脚本

 

 

标签:容器,return,请求,SpringMVC,实现,简单,save,class
From: https://www.cnblogs.com/-emo/p/17279594.html

相关文章

  • 单向链表和双向链表的逆序的两种实现方式
    单向链表的逆序实现方式publicstaticclassNode{privateintval;privateNodenext;publicNode(intval){this.val=val;}}/**实现单向链表的第一种方式,只通过链表指针的重连来实现*/publicstaticNoderece......
  • C++实现AES加密
    参考https://zhuanlan.zhihu.com/p/567141666本人开发环境:vs2022,平台工具集vs2015(v140)要做到的如下图需要下载Cryptopp库https://github.com/weidai11/cryptopp打开默认工程,生成即可,选择cryptlib项目点击生成,产生头文件和lib文件实现代码:#include<Cryptopp/aes.h>#i......
  • Python——单元测试的实现
    摘要单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。在软件开中的测试是很重要的一部分。python测试相关库unittest,内置库,模仿PyUnit写的,简洁易用,缺点是比较繁琐。nose,测试发现,发现并运行测试。pytest,笔者目前喜欢用这个,写起来很方便,并且很多知名开源项......
  • 如何基于AI算法实现智慧工厂视频大数据智能预警平台搭建?
    当前我国正处于数字经济高速发展的时代,企业正面临着数字化“转型升级”的需求。那么,工厂该如何实现智能化转型目标呢?EasyCVR视频融合平台与AI智能分析网关,融合了边缘AI智能识别技术,部署了多种AI算法,能实现人脸、人体、车辆、物体、行为等智能检测,在工厂的智慧转型场景中发挥着重要......
  • 用python实现简单的版本号生成工具
    用python实现简单的版本号生成工具我们发布比较频繁,每次发布都需要从release分支打1个tag,不过可能是因为年纪大了的缘故吧,尽管借鉴了一些版本号的制定规则,不过每次我都记不太住,需要翻文档去重新复习,不如把这步自动化一下,为未来的自己节约一点时间,另外有了工具就好统一规则,后面所......
  • DataLeap 数据资产实战:如何实现存储优化?
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群背景DataLeap作为一站式数据中台套件,汇集了字节内部多年积累的数据集成、开发、运维、治理、资产、安全等全套数据中台建设的经验,助力企业客户提升数据研发治理效率、降低管理成本。Da......
  • 《物理学的简单性》 回复
    《物理学的简单性》      https://tieba.baidu.com/p/8340738817      @qcaxq  来做题  。   你的头像 是个雪花,  是不是有什么寓意 ?   分形 ?   混沌 ? 你说的那些硬书,  我硬是提不起兴趣来  ......
  • js实现拖拽功能(拖拽排序)
    <template><transition-groupclass="container"name="sort"><divclass="drag-item"v-for="(v,i)indragArray":key="i":draggable="true"@dragstart="dr......
  • 实现echarts 十字辅助线
     想要实现的效果如下图:  实现十字辅助线的主要代码如下:axisPointer:{type:'cross',//xy轴十字架指示数值背景区域色label:{backgroun......
  • SpringBoot中如何实现业务校验,这种方式才叫优雅!
    大家好,我是飘渺。在日常的接口开发中,为了保证接口的稳定安全,我们一般需要在接口逻辑中处理两种校验:参数校验业务规则校验首先我们先看看参数校验。参数校验参数校验很好理解,比如登录的时候需要校验用户名密码是否为空,创建用户的时候需要校验邮件、手机号码格式是否准确。......