SSM整合——简单的小项目实战 (上)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDSClaw,2核4GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: SSM整合——简单的小项目实战 (上)

文章目录:


1.SSM整合思路

1.1 两个容器的创建 

1.2 SSM整合开发的步骤

2.SSM整合开发 

2.1 项目的大体结构 

2.2 使用Navicat创建一个表(student2 

2.3 IDEA中使用maven创建一个web项目

2.4 pom.xml文件中添加相关依赖

2.5 web.xml文件中。声明容器对象

2.6 创建项目中特定的包(entitydaoservicecontroller

2.7 编写mybatisspringspringmvc的配置文件 

2.7.1 mybatis

2.7.2 spring

2.7.3 springmvc


1.SSM整合思路


SSMSpring + SpringMVC + MyBatis,就是使用这三个框架的优势功能来完成一些项目的构建。三个框架分别对应了三层架构中的每一层。Spring业务逻辑层;SpringMVC:视图层;MyBatis:持久层。

SSM整合了话,就需要把对象交给容器,让容器去创建项目中要使用的Java对象,目前有两个容器。

第一个:Spring容器,Spring容器管理的是servicedao等对象,是业务逻辑层对象的容器。

第二个:SpringMVC容器,这个容器管理的是控制器对象,也就是视图层的对象。


1.1 两个容器的创建 

Spring容器的创建:在web.xml文件中声明监听器 ContextLoaderListener这个功能框架中已经写好了,就是创建Spring的容器对象 WebApplicationContext在创建WebApplicationContext 对象时,读取Spring的配置文件,遇到<bean>标签或者注解,就可以创建servicedao等对象,这些对象最终都放在Spring容器中。


SpringMVC容器的创建:在web.xml文件中声明中央调度器 DispatcherServlet在这个servlet init() 方法中,创建了容器对象WebApplicationContext在创建 WebApplicationContext 对象时,读取SpringMVC的配置文件,如果遇到相应的注解,则创建控制器对象,创建好的对象放在SpringMVC容器中。


1.2 SSM整合开发的步骤

·       使用Navicat创建一个要操作的表。(也可以直接在IDEA中写sql语句来创建)

·       IDEA中使用maven创建一个web项目。

·       pom.xml文件中添加相关依赖。(springspring事务、springmvcmybatismybatis-springmysql驱动、servletjspjacksondruid 

·       web.xml文件中声明容器对象

        1)声明spring的监听器 ContextLoaderListener:创建spring容器对象(servicedao)。

        2)声明springmvc的中央调度器 DispatcherServlet:创建springmvc容器对象(controller)。

        3)声明字符集过滤器CharacterEncodingFilter,解决post请求乱码的问题。

·       创建项目中特定的包:entitydaoservicecontroller。(package

·       编写mybatis配置文件、spring配置文件、springmvc配置文件。(xml

·       编写Java代码:实体类、dao接口和对应的mapper文件、service类、controller类,使用注解声明对象、给对象赋值。

·       创建视图文件。(各种 jsp 页面,发起请求)

·       启动 tomcat,测试!!!

2.SSM整合开发


2.1 项目的大体结构 


在这个SSM整合开发的项目中,用到了这些内容(JavaSE就不多说了。。。Java Web相关的有:JDBCHTMLJSjsonjQueryAjaxTomcatServletJSPEL,最后是框架:MyBatisSpringSpringMVC


2.2 使用Navicat创建一个表(student2 

2.3 IDEA中使用maven创建一个web项目


2.4 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>
    <!-- jackson依赖 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.0</version>
    </dependency>
    <!-- spring依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.5.RELEASE</version>
    </dependency>
    <!-- spring事务依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.2.5.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.5.RELEASE</version>
    </dependency>
    <!-- springmvc依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.5.RELEASE</version>
    </dependency>
    <!-- mybatis依赖 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.1</version>
    </dependency>
    <!-- mybatis-spring集成依赖 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>
    <!-- mysql驱动依赖 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.9</version>
    </dependency>
    <!-- druid连接池依赖 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.12</version>
    </dependency>

2.5 web.xml文件中。声明容器对象

<!-- 声明spring监听器 -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:/conf/applicationContext.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 声明springmvc的中央调度器 -->
<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:/conf/dispatcherServlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 声明字符集过滤器 -->
<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>
    <init-param>
        <param-name>forceRequestEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
    <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>

2.6 创建项目中特定的包(entitydaoservicecontroller


2.7 编写mybatisspringspringmvc的配置文件 

2.7.1 mybatis

jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&amp;characterEncoding=utf-8
jdbc.username=root
jdbc.password=12345678
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 设置日志 -->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <mappers>
        <!-- 加载dao包下的所有mapper文件 -->
        <package name="com.songzihao.dao"/>
    </mappers>
</configuration>

2.7.2 spring

<?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" />
    <!-- 声明组件扫描器 -->
    <context:component-scan base-package="com.songzihao.service" />
    <!-- 创建数据源 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    <!-- 创建SqlSessionFactory对象 -->
    <bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:/conf/mybatis.xml" />
    </bean>
    <!-- 创建SqlSession对象,通过反射机制加载dao接口对应的mapper文件 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="factory" />
        <property name="basePackage" value="com.songzihao.dao" />
    </bean>
    <!-- 事务配置 -->
</beans>

2.7.3 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:mvc="http://www.springframework.org/schema/mvc"
       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 http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!-- springmvc配置文件:声明controller、视图解析器等web开发中的对象 -->
    <!-- 声明组件扫描器 -->
    <context:component-scan base-package="com.songzihao.controller" />
    <!-- 声明视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>
    <!-- 声明springmvc注解驱动 -->
    <mvc:annotation-driven />
</beans>
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
供应链 前端开发 安全
【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)3
【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)
 【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)3
|
存储 前端开发 JavaScript
【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)1
【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)
【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)1
|
前端开发 JavaScript Java
Java项目实战|基于SSM框架开发实现毕业生就业管理系统
Java项目实战|基于SSM框架开发实现毕业生就业管理系统
264 0
|
前端开发 JavaScript Java
前后端分离项目实战(Vue+SSM)
前后端分离项目实战(Vue+SSM)
前后端分离项目实战(Vue+SSM)
|
存储 Java 关系型数据库
SSM框架实现新闻网站信息管理系统前台后台综合开发项目实战
新闻网站的实现分为前台及后台,采用SSM、maven进行开发,数据库采用mysql数据库。
283 0
|
JSON 前端开发 JavaScript
SpringBoot仅会SSM强撸项目--【JSB项目实战】
SpringBoot仅会SSM强撸项目--【JSB项目实战】 CSDN 转过来的,所以格式与内容有些许错误请见谅
|
存储 供应链 数据可视化
【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)2
【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)
【项目实战】仓库信息管理系统(layui+SSM+SpringBoot)2
|
NoSQL 前端开发 Java
SSM框架项目实战教程,高企必备的管理系统—CRM管理系统
CRM系统包括一些核心的客户关系管理业务功能,如:潜在客户、客户管理、拜访管理、商机管理、订单管理等模块,满足企业客户关系信息化的要求,并帮助企业提高客户资源的管理效率,能够通过项目视图清晰的了解每个项目的进展情况,通过丰富的统计报表掌握全局的项目数据
284 0
|
安全 Java 应用服务中间件
SSM整合——简单的小项目实战 (下)
SSM整合——简单的小项目实战 (下)
SSM整合——简单的小项目实战 (下)
|
Java 开发者
2.1.2 类加载器的工作原理与自定义加载器 -《SSM深入解析与项目实战》
2.1.2 类加载器的工作原理与自定义加载器 -《SSM深入解析与项目实战》
917 0
下一篇
开通oss服务