一个简单SpringMVC的实现
之前学习时候,是使用老师的自定义的一个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来实现链接数据库脚本
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类