欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

一步步详解SSM架构(Spring、Spring MVC与MyBatis集成)的搭建流程

最编程 2024-02-20 17:39:46
...

第三章 SSM整合开发


  • SSM 编程,即 SpringMVC + Spring + MyBatis 整合,是当前最为流行的 JavaEE 开发技术架 构。其实 SSM 整合的实质,仅仅就是将 MyBatis整合入 Spring。因为 SpringMVC原本就是 Spring 的一部分,不用专门整合。
  • SSM 整合的实现方式可分为两种:基于 XML 配置方式,基于注解方式。


3.1 搭建SSM开发环境


3.1.1 添加pom.xml依赖


<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- jsp依赖 -->
<dependency> 
 <groupId>javax.servlet.jsp</groupId> 
 <artifactId>jsp-api</artifactId> 
 <version>2.2.1-b03</version> 
 <scope>provided</scope>
</dependency>
<dependency>
<!--springMVC依赖-->
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!--SpringM处理事务的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!--spring处理数据库连接的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!--将数据转换为json格式的依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<!--spring整合mybatis的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!--mybatis的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!--数据库连接驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
<!--数据路连接池依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
复制代码


3.1.2 配置web.xml


(1)注册ContextLoaderListenter监听器

微信截图_20220610113648.png

  • 注册 ServletContext 监听器的实现类 ContextLoaderListener,用于创建 Spring 容器及将创 建好的 Spring 容器对象放入到 ServletContext 的作用域中。

(2) 注册字符集处理器

微信截图_20220610113657.png

  • 注册字符集过滤器,用于解决请求参数中携带中文时产生乱码问题。

(3)配置*调度器

  • 配置*调度器时需要注意,SpringMVC的配置文件名与其它 Spring配置文件名不相同。 这样做的目的是 Spring 容器创建管理 Spring 配置文件中的 bean, SpringMVC 容器中负责视 图层 bean 的初始。

微信截图_20220610113706.png

3.2 SSM整合注解开发


项目:ssm

需求:完成学生注册和信息浏览。


3.2.1 建表 Student

微信截图_20220610113756.png

3.2.2 新建 Web 工程


工程名称 ssm


3.2.3 maven 依赖


  • 添加项目搭建的时候哪些依赖即可。


3.2.4 定义包,组织程序的结构

微信截图_20220610113819.png 微信截图_20220610113826.png

3.2.5 编写配置文件


(1) Jdbc 属性配置文件 jdbc.properties

jdbc.url=jdbc:mysql://localhost:3306/school
jdbc.username=root
jdbc.password=567cybtfboys
复制代码

(2) 配置web.xml

  • 配置*调度器。将SpringMVC配置文件中的对象(Controller)全部加载到SpringMVC容器中。
  • 配置监听器。将Spring配置文件中的全部对象(Dao、Service)全部加载到Spring容器中。
  • 配置过滤器。解决post请求中的中文乱码问题。
  • web.xml可以加载出Spring.xml以及SpringMVC.xml文件。
<?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">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!--
    注册*调度器,创建SpringMVC容器对象
    将SpringMVC配置文件中的所有被@Controller注解的类为Servlet对象
  -->
  <servlet>
    <servlet-name>myWeb</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:conf/SpringMVC.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>myWeb</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <!--
    注册监听器,创建Spring容器对象,创建Spring.xml的配置文件中的所有对象。
    监听器加载spring主配置文件的路径是: /WEB-INF/spring.xml(Spring主配置文件)
    我们此时修改为自己的保存spring.xml的路径。
  -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:conf/Spring.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!--注册声明过滤器,解决中文乱码问题-->
  <filter>
  <!--名字是自定义的-->
  <filter-name>characterEncodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <!--设置项目中使用字符编码-->
  <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
  </init-param>
  <!--强制请求对象(HttpServletRequest)使用encoding编码的值,也就是上边声明的这个 utf-8-->
  <init-param>
    <param-name>forceRequestEncoding</param-name>
    <param-value>true</param-value>
  </init-param>
  <!--设置应答对象(HttpServletResponse)使用encoding编码的值,也就是上边声明的这个 utf-8-->
  <init-param>
    <param-name>forceResponseEncoding</param-name>
    <param-value>true</param-value>
  </init-param>
  </filter>
  <filter-mapping>
  <filter-name>characterEncodingFilter</filter-name>
  <!--
    /* : 表示强制所有的请求先通过过滤器处理。
  -->
  <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>
复制代码

(3) Spring配置文件 applicationContext.xml

  • Spring主配置文件组件扫描器扫描的是Dao、Service的对象。
  • 配置连接数据库的信息。
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!--Spring配置文件:声明service,dao,工具类等对象-->
    <!--声明数据库配置文件的位置-->
    <context:property-placeholder location="classpath:conf/jdbc.properties" />
    <!--声明数据源,连接数据库-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"
          destroy-method="close">
        <!--

						

上一篇: 快速建立SSM项目的起始架构指南

下一篇: 整合SSM项目:协同log4j与slf4j的日志处理方案