Spring——MVC框架整合

Java
305
0
0
2023-05-31
标签   Spring

MVC框架 整合

  • 2.问什么要整合MVC框架3.Spring可以整合哪些MVC框架4.Spring整合MVC框架的核心思路

一、MVC框架整合思想

1.搭建web运行环境

(1)新建模块

(2)选择新建模块

(3)输入位置和名称后点击创建

(4)右键创建好的模块,选择框架支持

(5)选择web应用程序,添加

(6)配置环境

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="#34;
xmlns:xsi="#34;
xsi:schemaLocation=" #34;>
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>SpringWeb</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
< maven .compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax. Servlet </groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.22</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.22</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.22</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.22</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.22</version>
</dependency>
<!--为了去掉默认的日志框架-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.36</version>
</dependency>
<!--引入 log4j 日志框架-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.3.22</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.9.1</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.3</version>
</dependency>
<!-- MyBatis 环境搭建-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<!--Spring与 MyBatis整合,包括上边两个MyBatis jar包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring- jdbc </artifactId>
<version>5.3.22</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.9</version>
</dependency>
<!--Spring控制事务jar包引入-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.3.22</version>
</dependency>
</dependencies>
<build></build>
</project>

2.问什么要整合MVC框架

(1)MVC框架提供了 控制器 (Controller)调用 Service

(2)请求响应的处理

(3)接收请求参数

(4)控制程序的运行流程

(5)视图解析

3.Spring可以整合哪些MVC框架

(1)struts1

(2) webwork

(3)jsf

前三个比较久远了

(4) struts2

(5)springMVC(应用最为广泛)

4.Spring整合MVC框架的核心思路

1.准备工厂

(1) web开发过程中如何创建工厂

AppliactionContext ac = new ClassPathXmlApplicationContext("applicationContext.xml")
改为: WebXmlApplicationContext()

(2)如何保证工厂唯一切同时被共用

1)被共用:Web request |session|ServletContext(application)
工厂被存储在 ServletContext 这个作用域中 ServletContext.setAttribute("xxxx",ac);
2)唯一:ServletContext对象在创建的同时 --->AppliactionContext ac = new ClassPathXmlApplicationContext("applicationContext.xml")
ServletContextListener(ServletContext对象在创建的同时被调用,只被调用一次) ---> AppliactionContext ac = new ClassPathXmlApplicationContext("applicationContext.xml")

(3)总结

 在ServletContextListener中创建工厂(唯一),把工厂存储在ServletContext的作用域中(共用)  

(4) Spring封装了一个 ContextLoaderListener

作用:创建工厂,把工厂存在ServletContext中

(5) ContextLoaderListener的使用方式

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>

2.代码整合

依赖注入:把Service对象注入给控制器对象