SpringMVC的介绍

问题:

在学习了Spring之后,基于MVC设计模式的项目,我们可以使用Mybatis将数据库替换,使用Spring将Controller层和Service层,以及Service层和数据库层之间进行解耦。但是基于MVC的模式中,在Controller层中的Servlet为请求的代码入口。tomcat服务器在接受到请求后,会根据请求地址自定调用对应的servlet的service方法完成请求处理,但是此流程存在如下问题:

① 每个功能都要声明对应的Servlet,麻烦。

② Servlet中获取请求数据比较麻烦。

③ 响应的方式的代码其实只想声明对应的响应数据。

解决:

项目只声明一个Servlet,该Servlet作为项目请求的公共入口。并且在该Servlet必须声明代码,此代码根据请求地址调用对应的逻辑代码处理请求。如果将逻辑方法全部声明在Servlet中造成代码的体系结构不清晰,将逻辑方法单独声明到逻辑类中(Controller类)。然后Servlet中根据请求动态的调用对应的逻辑类中的逻辑方法处理请求即可。

① 如何在Servlet中获取逻辑类对象呢?

使用Spring容器的子容器,在子容器中存储所有的Controller的实例化对象,然后Servlet一次性从子容器中获取所有的对象即可。在init方法中实现即可。

② 如何在Servlet中根据请求动态调用对象的逻辑方法呢

使用反射+注解。

原理图:

 

 

实现:

SpringMVC

本质:

就是将Servlet进行了封装,提供一个公共的Servlet。该Servlet可以根据请求动态的调用对应的逻辑方法完成请求处理。

优点:

提升开发效率。

使用:

① 导入SpringMVC的相关jar

② web.xml中配置Servlet

  1. Servlet的访问路径
  2. 配置SpringMVC容器对象的配置文件路径

③ src下创建并配置SpringMVC配置文件

  1. 配置注解扫描路径
  2. 配置SpringMVC的驱动解析器。
posted @ 2021-01-21 14:45  巧克力曲奇  阅读(61)  评论(0编辑  收藏  举报