Spring——MVC框架整合

Java
267
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对象注入给控制器对象