整合思路

由于SpringMVC是Spring框架中的一个模块,SSM框架的整合只涉及Spring与MyBatis的整合及Spring MVC与MyBatis的整合。如下图所示

整合环境

SSM框架整合需要使用Spring、SpringMVC、Mybaits依赖的jar包。项目创建后,需要将这些jar导入。如果是maven工程,只需在pom文件中添加以下依赖包,具体内容如下:

 <!--spring核心依赖包--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.5.RELEASE</version><scope>test</scope></dependency><!--spring AOP--><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjtools</artifactId><version>1.8.9</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>1.5.4</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.5</version><scope>runtime</scope></dependency><!--spring 的事物管理--><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.1.5.RELEASE</version></dependency><!--第三方数据源依赖--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.5.0</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-dbcp2</artifactId><version>2.5.0</version></dependency><!-- mybatis与spring整合的jar包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency><!--spring管理的 jdbc ,以及事务相关的--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.17.RELEASE</version></dependency><!--mybatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency><!--mySQL数据库连接依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><!--springmvc依赖包--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.5.RELEASE</version></dependency><!--json与java对象转换依赖包--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.8</version></dependency><!--文件上传与下载依赖包--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.8.0</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency>

项目结构

配置文件

SSM配置文件包括数据库配置、Spring配置、mybaits配置、spring-mvc配置、日志配置及web.xml配置等。
数据库连接配置(db.properties):

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://xx.xx.xxx.xxx:3306/sl?serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=xxxxxx
jdbc.maxTotal=30
jdbc.maxIdle=10
jdbc.initialSize=5

日志配置(log4j.properties):

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.bjwl=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

applicationContext.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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsd"><!-- 开启扫描 --><context:annotation-config/><!--读取db.properties --><context:property-placeholder location="classpath:db.properties"/><!-- 配置数据源 --><bean id="dataSource"class="org.apache.commons.dbcp2.BasicDataSource"><!--数据库驱动 --><property name="driverClassName" value="${jdbc.driver}"/><!--连接数据库的url --><property name="url" value="${jdbc.url}"/><!--连接数据库的用户名 --><property name="username" value="${jdbc.username}"/><!--连接数据库的密码 --><property name="password" value="${jdbc.password}"/><!--最大连接数 --><property name="maxTotal" value="${jdbc.maxTotal}"/><!--最大空闲连接  --><property name="maxIdle" value="${jdbc.maxIdle}"/><!--初始化连接数  --><property name="initialSize" value="${jdbc.initialSize}"/></bean><!-- 事务管理器,依赖于数据源 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--配置MyBatis工厂 --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><!--注入数据源 --><property name="dataSource" ref="dataSource"/><!--指定核心配置文件位置 --><property name="configLocation" value="classpath:mybatis-config.xml"/></bean><!-- Mapper代理开发(基于MapperScannerConfigurer) --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.bjwl.dao"/></bean><!--自动扫描--><context:component-scan base-package="com.bjwl.**"/>
</beans>

springmvc.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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 指定需要扫描的包 --><context:component-scan base-package="com.bjwl.controller" /><!-- 配置注解驱动 --><mvc:annotation-driven /><!--配置静态资源的访问映射,此配置中的文件,将不被前端控制器拦截 --><mvc:resources location="/js/" mapping="/js/**" /><!-- 定义视图解析器 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 设置前缀 --><property name="prefix" value="/" /><!-- 设置后缀 --><property name="suffix" value=".jsp" /></bean><!-- 配置文件上传解析器 MultipartResolver --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 设置请求编码格式--><property name="defaultEncoding" value="UTF-8" /></bean>
</beans>

myBatis-config.xml配置

<?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><!--配置Mapper的位置 --><mappers><mapper resource="mapper/UserDao.xml"/></mappers>
</configuration>

测试代码

pojo目录下实体类代码

public class UserEntity {private Integer id;private String username;private String address;//省略get set方法
}

dao目录下代码

@Mapper
public interface UserDao {List<UserEntity> getAll();UserEntity findUserById(Integer id);int addUser(UserEntity user);int updateData(UserEntity user);int deleteData(Integer id);
}

不要忘了@Mapper或@Repository注解符
services目录下,服务接口与实现

public interface UserService  {List<UserEntity> getAll();UserEntity getUserById(int id);int save(UserEntity userEntity);int remove(int id);
}@Service("userService")
public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;@Overridepublic List<UserEntity> getAll() {return userDao.getAll();}@Overridepublic UserEntity getUserById(int id) {return userDao.findUserById(id);}@Overridepublic int save(UserEntity userEntity) {int num=0;if (userEntity.getId() == null) {num =  userDao.addUser(userEntity);} else {num = userDao.updateData(userEntity);}return num;}@Overridepublic int remove(int id) {return userDao.deleteData(id);}
}

不要忘了在具体的实现类上加注解符@Service

controller目录下写控制类

@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/list")public List<UserEntity> getAll(){return userService.getAll();}@RequestMapping("/getUserById")public UserEntity getUserById(Integer id){return userService.getUserById(id);}@RequestMapping("/save")public Map saveData(@RequestBody UserEntity userEntity ){Map<String,String> map = new HashMap<>();int num= userService.save(userEntity);System.out.println("保存数据返回参数!");if(num>-1) {map.put("msg", "保存成功!");}else{map.put("msg", "保存失败!");}return map;}@RequestMapping("/delete")public Map delData(Integer id){Map<String,String> map = new HashMap<>();int num= userService.remove(id);if(num>-1) {map.put("msg", "删除成功!");}else{map.put("msg", "删除失败!");}return map;}
}

全部返回json数据,注意注解赋@RestController、@RequestMapping、@RequestBody的使用

使用postman进行测试:

SSM框架整合详细过程相关推荐

  1. SSM框架整合—详细整合教程(Spring+SpringMVC+MyBatis)

    SSM框架整合-详细整合教程(Spring+SpringMVC+MyBatis) ✨博主介绍 MyBatis和Spring整合 1.整合原因 2.整合条件 3.整合入门 4.整合MyBatis现有配置 ...

  2. SSM框架整合详细案例

    目录描述 一.创建web项目(使用idea maven) 二.使用maven添加依赖 1.在pom.xml中添加项目所需的所有依赖 2.添加tomcat运行驱动 三.建立整体项目架构 四.搭建myba ...

  3. SSM框架整合---详细案例

    目录 一.建四个配置文件在resource根目录 二.applicationContext-mybatis.xml核心配置 三.database.properties配置 四.mybatis-conf ...

  4. SSM框架超级详细整合记录:Spring+Spring MVC+MyBatis+Maven+MySQL

    1.前言 本文主要对SSM框架整合的过程进行记录,作为之后参考的依据. 1.1.参考文章 Spring代码实例系列-绪论 Spring MVC代码实例系列-绪论 MyBatis代码实例系列-绪论 1. ...

  5. IDEA优雅整合Maven+SSM框架(详细思路+附带源码)

    前言: 网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰,可以试着关掉整合教程,摇两下头骨,哈一大口气,就在万事具备的时候,开整,这个时候你可能思路全无 ~中招了咩~ ,还有一些同学依 ...

  6. SSM Chapter 12 SpringMVC扩展和SSM框架整合

    SSM Chapter 12 SpringMVC扩展和SSM框架整合 笔记 本章目标: 掌握JSON对象的处理 理解数据转换和格式化 了解本地化 掌握Spring MVC+Spring+MyBatis ...

  7. (转)淘淘商城系列——SSM框架整合之Dao层整合

    http://blog.csdn.net/yerenyuan_pku/article/details/72721093 一个项目中往往有三层即Dao层.Service层和Web层,看标题就知道了,本文 ...

  8. JavaEE——SSM框架整合实现学生信息注册案例

    目录 十.SSM框架整合实现学生信息注册案例 1. 创建06-ssm的web项目 2. 修改web.xml版本为4.0 3. 更新pom.xml文件 4. jdbc的属性文件和日志文件 5. appl ...

  9. 全栈开发实战 | SSM框架整合完整教程

    "一个人最好的状态:梦想藏在心里,行动落于腿脚." 目录 1.前言 2.基本概念 2.1 MyBatis 2.2 Spring 2.3 SpringMVC 3.开发环境搭建 3.1 ...

  10. SpringMvc框架及SSM框架整合

    SpringMvc框架及SSM框架整合 一.SpringMvc相关知识 1.Spring和SpringMvc的关系 ​ 1.1.Spring是IOC和AOP的容器框架,SpringMVC是基于Spri ...

最新文章

  1. CorelCAD 2020中文版
  2. C++:41---覆盖和隐藏
  3. vue使用Echart跟随窗口大小改变而重新绘制时出现读取窗口大小不及时的问题
  4. C++中实现类似php的UTF8和UrlEncode函数的代码
  5. 刷新后保持大分类和小分类的展开状态
  6. JAVA JDK 官网安装包启动后没反应
  7. 2021-2027全球与中国全自动探针台市场现状及未来发展趋势
  8. matlab泊松分布实现
  9. Cesium基础知识-粒子应用-汽车冒烟
  10. [bzoj2827]千山鸟飞绝【splay】
  11. Android App 授权机制简析
  12. 第七章 人工智能,7.2 颠覆传统的电商智能助理-阿里小蜜技术揭秘(作者:海青)...
  13. 在vue中使用marked解析MARKDOWN,生成目录,运行代码示例
  14. 国潮风彩色手绘年俗年画春节插画素材
  15. 制作 docker 精简 jre8 基础镜像
  16. 计算机组成原理-组成篇(下)
  17. php变量输出的几种方式
  18. Unable to locate tools.jar. Expected to find it in........
  19. Linux基础学习---1、目录结构、Vim编辑器、网络配置和远程登录
  20. Win11系统怎么禁止OneDrive开机自启操作分享

热门文章

  1. 计算机考试宏的录制,最新版本:鼠标和键盘录制工具(宏录制器)
  2. 宅男福利——在控制台上跳极乐净土(音频版)
  3. Transformers in NLP (一):图说transformer结构
  4. 华为ax3怎么接光纤sc接口_华为AX3 pro获取原来路由器宽带账号和密码的操作步骤...
  5. UE4安装教程,虚幻引擎安装教程,UE4的安装
  6. 图标跟字对不齐_css:图标与文字对齐的两种方法
  7. 三步教你Word启用所有宏
  8. php网页象棋源码,JS小游戏之象棋暗棋源码详解_javascript技巧
  9. 银行票据+票据池相关的项目讲解
  10. Opencv函数 rectangle函数与Rect函数的用法