前言
学完了大数据基本组件,SpringMVC 也得了解了解,为的是之后 SpringBoot 能够快速掌握。SpringMVC 可能在大数据工作中用的不多,但是 SSM 毕竟是现在就业必知必会的东西了。SpringBoot 在数仓开发可能会经常用到,所以不废话学吧。
1、SpringMVC 概述
1.1、请求响应模式演进过程
1.1.1、三层架构
- web:页面数据的收集以及产生页面
- service:业务处理
- dao:数据持久化
弊端:一个 Servlet 只能一个处理请求。
1.1.2、MVC 模式
浏览器将请求发送给控制器,控制器调用 Service 层,再由 Service 层调用 dao 层得到数据,将得到的数据组织成数据模型(封装成对象),然后将页面和数据模型封装到一起返回给浏览器。这样,一个 Servlet 就可以处理多个请求了。
MVC 模式下的 view 一般用的是 jsp,但是现在我们一般都用的是 HTML、CSS、E lementUI、Vue 这些技术:
1.13、异步调用
异步调用模式下,我们不再需要将 jsp 和 model 共同返回给浏览器展示了,而是页面和 model 分开,页面用 html、vue 这些前端技术,model 需要将它封装成 json 对象返回给我们的前端(因为 java 对象不能直接返回给页面):
这样,我们的前端页面就可以从 json 中把数据抽取出来,然后组织成页面展示到浏览器上面。
异步调用下 SpringMVC 的任务
- Controller 层的开发
- 数据转为 json 格式返回给前端
2、SpringMVC 入门案例
2.1、入门案例
使用 Servlet 开发 web 程序的过程:
- 创建 web 工程
- 设置 tomcat 服务器
- 导入依赖(Servlet)
- 定义处理请求的功能类(UserServlet)
- 配置请求映射关系
使用 SpringMVC 开发 web 程序的过程:
- 创建 web 工程
- 设置 tomcat 服务器
- 导入依赖(SpringMVC + Servlet)
- 定义处理请求的功能类(UserController)
- 配置请求映射关系
- 将 SpringMVC 设定加载到 Tomcat 容器中
0、配置环境
1、导入依赖
<build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>85</port> <path>/</path> <ignorePackaging>true</ignorePackaging> </configuration> </plugin> </plugins> </build> <dependencies> <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.0.RELEASE</version> </dependency> </dependencies>
2、初始化SpringMVC环境
@Configuration public class SpringMvcConfig { }
3、创建 SpringMVC 控制器类(等同于 Servlet 功能)
@Controller public class UserController { @RequestMapping("/save") public void save(){ System.out.println("user save ..."); } }
4、设定SpringMVC加载对应的Bean
@Configuration @ComponentScan("com.lyh.controller") // 扫描 public class SpringMvcConfig { }
5、初始化 Servlet 容器,加载SpringMVC 环境,并设置 SpringMVC 请求拦截的路径
/** * Servlet 容器配置类 */ public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer { /** * 加载SpringMVC容器对象 * @return */ protected WebApplicationContext createServletApplicationContext() { AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); ctx.register(SpringMvcConfig.class); return ctx; } /** * 请求由谁来处理?tomcat/springmvc * @return */ protected String[] getServletMappings(){ return new String[]{"/"}; // 所有请求都由 springmvc 来处理 } /** * 加载 Spring 的配置对应的容器对象 * @return */ protected WebApplicationContext createRootApplicationContext() { return null; } }
6、报错1
访问 localhost:85/save 报错:
7、设置请求返回值为 json 信息 并添加注解@ResponseBody 代表返回内容就是响应内容
8、重新请求 localhost:85/save
SpringMVC(一)【入门】(2)https://developer.aliyun.com/article/1534190