后来又涌现了SSM( Spring Struts Mybatis ) ;把稳这里还没有用 Spring MVC ,由于Spring早期发展时,Web模块并不是很好,以是这里web部分处理的话,早期用的是 Struts ;
再到后来,这个SSM框架说的便是( Spring Spring MVC Mybatis )组合体了;
现在再来说说这个 Spring MVC ;spring mvc是spring的一个模块;他们两个之间不须要什么中间层来连接;SpringMVC对servlet进行了封装;
springmvc 是一个基于 mvc 的 web 框架; 吸收外部要求,解析参数传给做事层
实在便是,springmvc封装了servlet;吸收客户端发送的要求,调用service做事层进行处理;再将处理的结果相应给客户端.
那么,再来看看啥是 MVC ;MVC的话,它是一个早期的开拓架构思想;
由 M层(modle模型层) [包括pojo实体类,dao数据交互,service做事];
V层(view 视图层) [展示的页面,比如说jsp (实际还是servlet)];
C层(Controller 掌握层) [放置servlet]
2.浅谈运行过程初步打仗,比较好理解的便是先上手开拓利用一下,然后再逐步阐发它的详细过程,学习效果会好一点.
可以把这个 DispatcherServlet 看作是个要求分发器;
首先让 DispatcherServlet吸收要求后,调用处理映射器 HandlerMapping ;
这个映射器,它先去检讨这个要求路径中有没有配拦截器,有的话过一遍;
然后这个处理映射器还会根据要求路径的url找到对应的 处 理 器 Handler(即Controller) 详细的掌握层;把它返回给 DispatcherServlet ; DispatcherServlet 再次出发,根据 Handler 的找一个处理适配器;然后处理得到视图与模型,再返回到 DispatcherServlet ,进行分发处理;相应数据;
左下角 视图解析 那块儿写错字了;
不过,现在大量利用打印流的办法合营JSON格式发出相应数据的话,这个流程实在就相比拟较大略了;详细的流程可以画成下面这样;
直接在掌握层通过打印流的办法将数据信息相应了
3.上手搭建springmvc,进行利用首先是导包
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.2.RELEASE</version></dependency>
把稳这个 spring-webmvc 包中实在就包含了 spring-context 的内容;以是我用了springmvc的jar包后就可以不用spring-context的包了;
这个案例是在上一篇条记中的案例,spring整合mybatis后,添加配置文件搭配出来的;
Spring框架学习条记(5) — [Spring框架整合Mybatis框架]
在 webapp 下的 WEB-INF 目录下的 web.xml 文件中,配置 DispatcherServlet;
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--DispatcherServlet--> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </init-param> <!--启动时就创建servlet--> <load-on-startup>0</load-on-startup> </servlet> <!--servlet映射所有路径--> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
有没有把稳到这里再利用初始参数时,要引用整合的spring配置文件;而且前面是classpath路径标注;由于到时候案例是要支配在tomcat做事器进走运行;资源访问路径要指向精确;
那么之前写的几个引用文件路径前也要加这个哦;实际上一篇条记写这个案例的时候,已经加了;这里提醒一下,加深影象.
spring-dbandtx.xml
spring-mybatis.xml
然后便是去配置开启MVC的表明扫描;
<mvc:annotation-driven></mvc:annotation-driven>
在 resources 目录下新建 spring-mvc.xml ,放置springmvc的配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--开启springmvc表明支持--> <mvc:annotation-driven></mvc:annotation-driven></beans>
这里在 spring.xml 下配置合并文件即可;
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--开启表明扫描--> <context:component-scan base-package="com.xiaozhire0.ssm"></context:component-scan> <!--合并数据连接以及事务管理配置文件--> <import resource="spring-dbandtx.xml"></import> <!--合并spring整合mybatis的配置文件--> <import resource="spring-mybatis.xml"></import> <!--合并springmvc配置文件--> <import resource="spring-mvc.xml"></import></beans>
掌握器类搭建;
利用 @Controller 表明标注 类为springmvc掌握类工具 ;
或者利用表明 @RestController ;由于它包含了表明 @Controller 的功能
可利用@RequestMapping(path="/ …")标注对应的要求路径
我这里就在ssm包下创建controller包,创建 PersonController ;
/ @author by CSDN@小智RE0 @date 2021-11-21 16:51 人类掌握层; ///标注此类为掌握类;@RestController@RequestMapping(path = "/person")public class PersonController { //自动装置做事层; @Autowired PersonService personService; //调用这个方法的访问路径实在便是 项目/person/save @RequestMapping(path = "/save") public void toSavePeople(){ System.out.println("访问到添加用户的路径---->"); People people = new People(); people.setName("从零开始的异天下Java开拓"); people.setPassword("487945"); people.setAge(18); people.setBirthday(new Date()); personService.savePeople(people); }}
配置tomcat做事器;
启动测试;
这里还犯明晰一个缺点;把包路径建错了;然后启动做事器一贯报错;
报的是这种缺点
21-Nov-2021 18:30:12.796 警告 [http-nio-8080-exec-4] org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping for GET ;
然后我就一个一个检讨配置文件,重新支配做事器,maven清理重新编译;都没找到缺点;
裂开,排错找了好久,才创造之前把包建错位置了.
访问路径 http://localhost:8080/ssmdemobyxiaozhi/person/save 后;实行成功