ssm框架项目完整流程详解

article/2025/11/10 21:47:11

springMVC项目完整流程详解

        • 1.创建一个maven项目
        • 2.修改项目配置,添加tomcat,生成web.xml
        • 3.在pom.xml中引入需要用到的包并update project
        • 4.在resources下建立如下图所示结构,并创建springmvc-servlet.xml、spring-mybatis.xml、druid.propterties和log4j.propteries
        • 5.配置web.xml文件
        • 6.建立项目的包结构
        • 7.配置springmvc-servlet.xml和spring-mybatis.xml
        • 8.依据数据库中的表创建实体类Car
        • 9.创建ICarMapper接口
        • 10.配置Car.mapper.xml
        • 11.创建ICarService接口及实现类CarServiceImpl
        • 12.创建异常类SSMException
        • 13.创建HttpResp类
        • 14.创建TestCarServiceImpl测试类
        • 15.创建CarController
        • 16.使用postman测试后端是否有bug

1.创建一个maven项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此处项目报错是正常现象,将在下面步骤进行处理

2.修改项目配置,添加tomcat,生成web.xml

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.在pom.xml中引入需要用到的包并update project

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.yxx.ssm</groupId><artifactId>ssm</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><properties><project.lombok.version>1.18.16</project.lombok.version><project.spring.version>5.2.12.RELEASE</project.spring.version><project.junit.version>4.12</project.junit.version><project.mysql.version>8.0.22</project.mysql.version><project.druid.version>1.2.4</project.druid.version><project.mybatis.version>3.5.6</project.mybatis.version><project.mybatis-spring.version>2.0.6</project.mybatis-spring.version><project.slf4j-log4j12.version>1.7.30</project.slf4j-log4j12.version><project.jackson-databind.version>2.12.1</project.jackson-databind.version></properties><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${project.lombok.version}</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${project.spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${project.spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${project.spring.version}</version><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${project.junit.version}</version><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${project.mysql.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${project.druid.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${project.mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${project.mybatis-spring.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${project.slf4j-log4j12.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${project.jackson-databind.version}</version></dependency></dependencies>
</project>

在这里插入图片描述

4.在resources下建立如下图所示结构,并创建springmvc-servlet.xml、spring-mybatis.xml、druid.propterties和log4j.propteries

在这里插入图片描述
druid.propterties(数据源配置信息)文件内容如下

druid.url=jdbc:mysql://192.168.120.128:3306/ssm-db?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
druid.username=root
druid.password=root

log4j.propteries(日志配置信息)文件内容如下

log4j.rootLogger=debug,Console,Logfile#Console output
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} [%t] %rms (%-5p) [%c] -%l-- {%m}%nlog4j.appender.Logfile=org.apache.log4j.FileAppender
log4j.appender.Logfile.File=D:/logs/mybatis.log
log4j.appender.Logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.Logfile.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} [%t] %rms (%-5p) [%c] -%l-- {%m}%nlog4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

5.配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" version="3.1"><display-name>ssm-basic</display-name><!--设置容器的配置文件位置--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/mybatis/spring-*.xml</param-value></context-param><!--通过listener启动IOC容器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--通过过滤器解决中文乱码问题--><filter><filter-name>charsetEncoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class></filter><filter-mapping><filter-name>charsetEncoding</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--通过servlet启动springmvc容器--><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/mvc/springmvc-*.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>/*</url-pattern></servlet-mapping>
</web-app>

6.建立项目的包结构

在这里插入图片描述

7.配置springmvc-servlet.xml和spring-mybatis.xml

springmvc-servlet.xml文件如下

<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/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"><!--配置注释扫描,并设置扫描范围(扫哪些包)--><context:component-scan base-package="com.yxx.ssm.controller"></context:component-scan><!--注解驱动--><mvc:annotation-driven/><!--访问static文件下的静态资源时,不予拦截--><mvc:resources location="static/" mapping="static/**"></mvc:resources></beans>

spring-mybatis.xml文件如下

<?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:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"><!-- 配置注解扫描,排除@Controller注释的类 --><context:component-scan base-package="com.yxx.ssm"><context:exclude-filter type="annotation" expression="import org.springframework.stereotype.Controller"/></context:component-scan><!-- 读取数据源配置信息 --><context:property-placeholder location="classpath:spring/mybatis/config/druid.properties" /><!-- 数据源对象 --><bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${druid.url}" /><property name="username" value="${druid.username}" /><property name="password" value="${druid.password}" /></bean><!-- 配置数据库与实体类的映射 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="druidDataSource" /><property name="typeAliasesPackage" value="com.yxx.ssm.entity" /><!-- 别名 --><property name="mapperLocations" value="classpath:mapper/*.mapper.xml"></property></bean><!-- 绑定mybatis的操作接口 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.yxx.ssm.mapper" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!-- 管理事务方式 --><bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="druidDataSource"></property></bean><tx:annotation-driven transaction-manager="txManager" />
</beans>

8.依据数据库中的表创建实体类Car

在这里插入图片描述

package com.yxx.ssm.entity;import org.apache.ibatis.type.Alias;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Alias("Car")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Car {private Integer id;private String brand;private String color;private Double price;}

9.创建ICarMapper接口

package com.yxx.ssm.mapper;import java.util.List;import com.yxx.ssm.entity.Car;public interface ICarMapper {void save(Car car);void delete(int id);void update(Car car);List<Car> findAll();
}

10.配置Car.mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--配置表中字段与类属性的映射-->
<mapper namespace="com.yxx.ssm.mapper.ICarMapper"><resultMap type="Car" id="carMap"><id property="id" column="car_id" /><result property="brand" column="car_brand" /><result property="color" column="car_color" /><result property="price" column="car_price" /></resultMap><!--插入语句--><insert id="save">INSERT INTOcar_tab(car_brand,car_color,car_price)VALUES(#{brand},#{color},#{price})</insert>
<!--删除语句--><delete id="delete">DELETE FROM car_tab WHERE car_id=#{id}</delete>
<!--更新语句--><update id="update">UPDATE car_tab<set><if test="brand!=null">car_brand=#{brand},</if><if test="color!=null">car_color=#{color},</if><if test="price!=null">car_price=#{price},</if></set>WHERE car_id=#{id}</update>
<!--查询语句--><select id="findAll" resultMap="carMap">SELECT * FROM car_tab</select>
</mapper>

11.创建ICarService接口及实现类CarServiceImpl

package com.yxx.ssm.service;import java.util.List;import com.yxx.ssm.entity.Car;public interface ICarService {void addCar(Car car);void deleteCarById(int id);void updateCar(Car car);List<Car> findAll();
}
package com.yxx.ssm.service.impl;import java.util.List;import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.yxx.ssm.entity.Car;
import com.yxx.ssm.mapper.ICarMapper;
import com.yxx.ssm.service.ICarService;@Service
public class CarServiceImpl implements ICarService{@Autowiredprivate ICarMapper mapper;@Overridepublic void addCar(Car car) {mapper.save(car);}@Overridepublic void deleteCarById(int id) {mapper.delete(id);}@Overridepublic void updateCar(Car car) {mapper.update(car);}@Overridepublic List<Car> findAll() {return mapper.findAll();}}

12.创建异常类SSMException

package com.yxx.ssm.exception;public class SSMException extends RuntimeException {public SSMException(String msg) {super(msg);}
}

13.创建HttpResp类

package com.yxx.ssm.dto;import java.util.Date;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class HttpResp {private int code;  //状态编号【自定义项目规则】private String msg;  //编号含义private Object results;  //返回的数据对象private Date time;  //返回时间
}

14.创建TestCarServiceImpl测试类

package com.yxx.ssm.test;import static org.junit.Assert.*;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.yxx.ssm.entity.Car;
import com.yxx.ssm.service.ICarService;
@ContextConfiguration(locations = "classpath:spring/mybatis/spring-mybatis.xml")
@RunWith(SpringJUnit4ClassRunner.class)
public class TestCarServiceImpl {@Autowiredprivate ICarService ics;@Testpublic void testAddCar() {ics.addCar(new Car(null,"紫电","紫色",100000.00));}@Testpublic void testDeleteCarById() {ics.deleteCarById(3);}@Testpublic void testUpdateCar() {ics.updateCar(new Car(3,"卓越","蓝色",120000.00));}@Testpublic void testFindAll() {ics.findAll();}
}

insert测试结果
在这里插入图片描述
在这里插入图片描述

update测试结果
在这里插入图片描述
在这里插入图片描述
select测试结果
在这里插入图片描述
delete测试结果
在这里插入图片描述

15.创建CarController

package com.yxx.ssm.controller;import java.util.Date;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.yxx.ssm.dto.HttpResp;
import com.yxx.ssm.entity.Car;
import com.yxx.ssm.service.ICarService;@Controller
public class CarController {@Autowiredprivate ICarService ics;@PostMapping("/addCar")@ResponseBodypublic HttpResp addCar(Car car) {ics.addCar(car);return new HttpResp(20001,"添加汽车成功",null,new Date());}@DeleteMapping("/deleteCar")@ResponseBodypublic HttpResp deleteCar(int id) {ics.deleteCarById(id);return new HttpResp(20002,"删除汽车成功",null,new Date());}@PutMapping("/updateCar")@ResponseBodypublic HttpResp updateCarById(Car car) {ics.updateCar(car);return new HttpResp(2003,"修改汽车信息成功",null,new Date());}@GetMapping("/findAll")@ResponseBodypublic HttpResp findAll() {return new HttpResp(20004,"查询所有汽车成功",ics.findAll(),new Date());}
}

16.使用postman测试后端是否有bug

insert测试
在这里插入图片描述
update测试
在这里插入图片描述
select测试
在这里插入图片描述
delete测试
在这里插入图片描述
至此,以ssm为框架的一个简单项目的后台部分已经完成,前端部分博主会在之后进行制作,届时再更新


http://chatgpt.dhexx.cn/article/hoZgofnV.shtml

相关文章

SSM三大框架工作流程与原理详解

作者&#xff1a;网络笨猪 blog.csdn.net/lyfqyr/article/details/84552278 一、Spring部分 1、Spring的运行流程 第一步&#xff1a;加载配置文件ApplicationContext ac new ClassPathXmlApplicationContext("beans.xml");&#xff0c;ApplicationContext接口&…

SSM框架原理,作用及使用方法,详细解释

1、基本概念 1.1、Spring Spring是一个开源框架&#xff0c;Spring是于2003 年兴起的一个轻量级的Java 开发框架&#xff0c;由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的…

【SSM框架执行流程】

一、单个业务执行流程&#xff1a; 1.tomcat启动: 加载应用的web.xml 2.实例化并初始化Servlet 3.加载spring.xml配置文件创建spring容器&#xff0c;根据配置初始化容器中的对象。 4.浏览器客户端发送请求&#xff0c;例如Hello() 5.请求到达前端控制器&#xff1a;Dispa…

SSM框架原理流程及使用方法

作用&#xff1a; ssm框架是spring MVC &#xff0c;spring和mybatis框架的整合&#xff0c;是标准的MVC模式&#xff0c;将整个系统划分为表现层&#xff0c;controller层&#xff0c;service层&#xff0c;DAO层四层 使用springMVC负责请求的转发和视图管理 spring实现业务…

SSM框架的整合原理以及执行流程

一、SSM框架的整合流程&#xff1a; 1 Spring与Mybatis整合 &#xff1a;关键在于spring-mybatis.xml配置文件&#xff0c;主要配置自动扫描、自动注入以及数据库等。前提是要配置好JDBC属性文件jdbc.properties. <?xml version"1.0" encoding"UTF-8"…

SSM三大框架的运行流程、原理、核心技术详解

一、Spring部分 1、Spring的运行流程 第一步&#xff1a;加载配置文件ApplicationContext ac new ClassPathXmlApplicationContext("beans.xml"); &#xff0c;ApplicationContext接口&#xff0c;它由BeanFactory接口派生而来&#xff0c;因而提供了BeanFactory所…

SSM框架整合以及运行流程

最近工作中开发的项目使用了Spring-springMVC-Mybatis框架进行开发&#xff0c;今天来总结写这段时间对SSM框架的理解。在对SSM框架整合前&#xff0c;先对框架的每层的作用以及它们之间的关系做一个简单的介绍。 一、SSM框架中各层级间的作用及关系 表现层&#xff08;sprin…

SSM框架原理及使用方法

作用&#xff1a; SSM框架是spring MVC &#xff0c;spring和mybatis框架的整合&#xff0c;是标准的MVC模式&#xff0c;将整个系统划分为表现层&#xff0c;controller层&#xff0c;service层&#xff0c;DAO层四层 使用spring MVC负责请求的转发和视图管理 spring实现业…

SSM框架运行原理

ssm框架&#xff1a;包括&#xff0c;springMVC -- spring -- mybatis springMVC 是基于MVC的框架 属于MVC框架的还有&#xff1a;Struts1 Struts2 SpringMVC 获取值得方式&#xff1a; Struts1 actionForm(javabean中继承) Struts2 通过 set get 方法 SpringMVC …

SSM框架工作原理、作用及使用方法

作用&#xff1a; SSM框架是spring MVC &#xff0c;spring和mybatis框架的整合&#xff0c;是标准的MVC模式&#xff0c;将整个系统划分为表现层&#xff0c;controller层&#xff0c;service层&#xff0c;DAO层四层 使用spring MVC负责请求的转发和视图管理 spring实现业…

SSM框架原理,作用及使用方法

作用: SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层 使用spring MVC负责请求的转发和视图管理 spring实现业务对象管理,mybatis作为数据对象的持久化引擎 原理: SpringMVC: 1.客户…

SSM框架原理以及流程简略

SSM框架原理以及流程 Spring:spring实现业务对象管理,也是各个组件的粘合剂&#xff0c;可以很好的管理各层之间的框架。 SpringMvc:负责请求的转发和视图管理,springmvc是spring的模块之一&#xff0c;所有整合的时候基本上可以实现100%零配置。 mybatis&#xff1a;作为数据…

SSM三大框架的运行流程、原理、核心技术详解!

一、Spring部分 1、Spring的运行流程 第一步&#xff1a;加载配置文件ApplicationContext ac new ClassPathXmlApplicationContext("beans.xml");&#xff0c;ApplicationContext接口&#xff0c;它由BeanFactory接口派生而来&#xff0c;因而提供了BeanFactory所…

深入浅出SSM框架流程以及原理

前言:学ssm框架已经有很长时间,今天来复习一下 SSM图示流程: Spring核心:Java反射 Mybatis:动态代理,而动态代理又是基于反射的,所以,ssm框架核心原理在反射。 (1)Spring(对象工厂): 平时开发接触最多的估计就是这个IOC容器,它可以装载bean(也就是Java中的类,…

SSM框架原理以及流程

SSM框架原理以及流程 一&#xff1a;原理二&#xff1a;开发流程1.新建maven项目2.配置整合文件2.1 配置pom.xml文件---引入依赖2.2 配置web.xml文件2.3 配置springmvc2.4 配置mybatis 3.java代码---测试 一&#xff1a;原理 1.springmvc&#xff1a; 1&#xff09;.客户端发送…

SSM框架架构,原理及整合流程(eclipse)

SSM框架整合 一.SSM框架1.1SSM四个分层架构的作用与联系1.2 SSM框架原理 二.SSM框架整合流程2.1SSM框架整合后完成一个功能的步骤 一.SSM框架 SSM&#xff1a;spring MVC &#xff0c;spring和mybatis框架的整合&#xff0c;是标准的MVC模式&#xff0c;将整个系统划分为view层…

SSM框架的原理和运行流程

SSM框架的工作原理及运行流程 SSM框架简介SpringMVCSpringMybatis参考文章 SSM框架简介 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、MyBatis两个开源框架整合而成&#xff08;SpringMVC是Spring中的部分内容&#xff09;。SSM常作为数据源较简单的web…

完全二叉树与满二叉树的区别+计算二叉树深度

1、完全二叉树与满二叉树的区别&#xff1a; 满二叉树&#xff1a;深度为k且有2^k-1个结点的二叉树称为满二叉树。 完全二叉树&#xff1a;设二叉树的深度为h&#xff0c;除第 h 层外&#xff0c;其它各层 (1&#xff5e;h-1) 的结点数都达到最大个数&#xff0c;第 h 层所有…

数据结构—二叉树深度优先遍历

二叉树是一种常见的数据结构&#xff0c;理解二叉树对于理解AVL树、红黑树都有重要意义&#xff0c;索性再重新梳理一下思路&#xff0c;加深印象。本文重点介绍二叉查找树。 1.二叉树与二叉查找树 二叉树&#xff08;binary tree&#xff09;是树的一种特殊形式&#xff0c;…

4.13每日一题之二叉树深度(洛谷c++)|dfs遍历树

&#x1f344;前言 大家好哇&#xff0c;我是一勺黑猫。今天是每日一题的第十三天&#xff0c;欢迎更多小伙伴加入到我们的打卡计划中&#xff0c;希望和你们在学习算法的路上一起进步~ &#x1f64e;作者简介&#xff1a;一个正在努力学算法和后端的大三girl ⏳每日一题打卡地…