遇见狂神说SSM整合项目梳理详解

article/2025/10/28 1:31:10

在跟B站的狂神学习的时候有一模块是SSM整合的一个小项目,虽然spring、springmvc、mybatis我都学过,但是整合到一起还是思路不清晰,就很懵,整合的一个小项目,让我知道了什么叫配置地狱,就是熟悉又陌生的感觉,现在梳理一下,顺便整理一下思路,希望能有所帮助!

具体代码可以看我的另一篇帖子https://editor.csdn.net/md?articleId=124505003


先来看看需要多少的配置文件:
在这里插入图片描述

第一、

一个项目前后端,是需要有数据库的,所以我们在这建了一个名字为ssmbuild的数据库,里面有一张名字为books的表,具体如 下图;
在这里插入图片描述

建好数据库之后开始基本环境搭建

第二

新建maven项目,勾选web支持

  1. 新建的maven第一步肯定是导入maven依赖,在pom.xml文件中添加依赖!我们在pom.xml
    中需要做两件事,一个是导入项目需要的依赖,再一个就是静态资源导出问题的解决办法
  • 需要添加的依赖有这些:我们肯定要操作数据库,所以就要有数据库驱动mysql-connector-java、数据库连接池,这里我们用的c3p0,spring-jdbc
  • 再就是需要Servlet - JSP相关的servlet-api、jsp-api、jstl
  • 因为是ssm整合嘛,所以就需要spring相关的spring-webmvc,mybatis相关的mybatis、mybatis-spring
  • 还需要一个测试单元依赖juint
  • lombok注解支持(自动生成get、set方法,有参无参构造)

pom.xml中一共有11个依赖(一个项目应该需要的依赖的至少精简依赖)

资源导出问题加上就可以,到这里我们的maven配置就差不多了

  1. 我们要撘环境做项目需要连接上数据库,这里就不多讲述了

  2. 现在建立基本结构和配置框架!(建包)

  • com.linfeng.pojo(实体类)

  • com.linfeng.dao(mapper)(数据访问层)

  • com.linfeng.service(业务层)

  • com.linfeng.controller(负责请求转发)

Mybatis层

mybatis层需要什么呢?
1、肯定先需要mybatis的配置文件啊,有两个配置文件:db.properties、mybatis-config.xml

  • db.properties是java中采用数据库连接池技术完成应用对数据库的操作的配置文件信息的文件。
    里面有四项:
    设置jdbc驱动包的位置、
    设置连接MySQL中的具体数据库和设置是否使用加密连线(useSSL)参数是boolena类型的,还有服务器的时区(serverTimezone)、
    再者就是mysql的用户名和密码

  • mybatis-config.xml是核心配置文件,里面需要数据源,这里我们跟spring整合了,所以就让spring去做。可以给它起别名typeAliases标签

2、配置文件写完就可以在pojo包下建实体类,与数据库中字段名一致,使用注解
@Data
@AllArgsConstructor
@NoArgsConstructor
这里不多讲述
3、实体类写好后就要写一些接口,好进行一些操作
在dao包下新建BookMapper接口,实现增删改查,
4、接口写好后具体怎么做,在学完mybatis的时候我们就不用自己手动去写,只需要配置mapper.xml文件就可以了,名字与接口一致
这个xml有一个重点,一个mapper绑定一个接口,然后写增删改查的sql语句
5、接口和配置文件都写完之后怎么做?
立马要做的是把这个mapper.xml绑定到mybatis的核心配置文件中去

这5步写完dao层,下一步写service层,service层与dao层有什么区别?
业务是需要跟数据库对应的,同样是增删改查的接口与实现类,业务层的实现类需要调用dao层 所以要组合dao层。

dao层与service层写完了。我们的mybatis底层也就写完了。
简单说pojo层就是对应数据库 的实体类,dao与service对应mvc的module层(数据跟业务)

mybatis层写完第二步就是spring层

spring层

首先来想spring层要做什么,怎么做?
spring要整和mybatis,而mybatis我们已经写好了,dao与service,所以就需要有两个xml文件

  • spring-dao.xml
  • spring-service,xml

先看整和dao层:我们至少要做什么事情?
1、关联数据库配置文件

<context:property-placeholder location="classpath:database.properties"/>

2、连接池
c3p0

3、配置sqlsessionFactory,关联Mybatis

<!-- 3.配置SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/><!-- 配置MyBaties全局配置文件:mybatis-config.xml --><property name="configLocation" value="classpath:mybatis-config.xml"/></bean>

之前我们还需要注册sqlsessionTemplate,关联sqlsessionFactory,现在我们做一个骚操作:
4配置dao接口扫描包,动态的实现了dao接口可以直接注入到spring容器中

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 注入sqlSessionFactory --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!-- 给出需要扫描Dao接口包 --><property name="basePackage" value="com.linfeng.dao"/></bean>

整和dao层结束,下面来看整和service层
同样道理,整和service要做那些事情?

1、扫描service下的包
2、将我们的所有的业务类注入到spring,可以通过配置或者注解
3、声明式事务配置

mvc层

至少要配置什么东西?

  • 在web.xml中配置DispatchServlet、乱码过滤、启动优先级
    配置DispatchServlet时注意几点:有两个属性 来保证它绑定我们的配置文件
    这个classpath:后的配置文件是总得配置文件applicationContext.xml
 <init-param><param-name>contextConfigLocation</param-name><!--一定要注意:我们这里加载的是总的配置文件,之前被这里坑了!--><param-value>classpath:applicationContext.xml</param-value></init-param>
  • 现在来写spring-mvc的配置文件spring-mvc.xml
    1、映射器、适配器因为我们用了注解可以省略,所以需要注解驱动,
    2、静态资源过滤
    3、扫描包:controller
    4、视图解析器

Spring配置整合文件

applicationContext.xml

 <import resource="spring-dao.xml"/><import resource="spring-service.xml"/><import resource="spring-mvc.xml"/>

配置文件,暂时结束!


现在看看resources中需要的配置文件有哪些

在这里插入图片描述

暂时先结束吧,具体代码实现可以看另一篇博客
https://editor.csdn.net/md?articleId=124505003


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

相关文章

SSM整合Quartz

Quartz 1.整合1.1 mysql中创建quartz表1.2 添加quartz依赖1.3 添加quartz.properties与数据库关联1.4 编写quartzConfig文件1.4.1 quartz的初始化配置1.4.2 创建job 实例工厂 1.5 编写定时任务1.5.1 静态方式编写定时任务1.5.2 动态方式编写定时任务 2.quartz2.1 quartz概念2.2…

SSM 整合

目录 第六章 SSM 整合导图第一节 Spring 和 Mybatis 整合1、思路2、Mybatis-Spring技术3、总体 SSM 整合所需依赖4、配置数据源①创建 jdbc.properties②加入日志配置文件③创建 Spring 配置文件④创建 junit 测试类 5、配置 SqlSessionFactoryBean①创建 Mybatis 全局配置文件…

SSM整合Vue

昨日知识点总结 今日总结 文章目录 一.昨日知识 1.表单验证2.上传组件3.时间插件4.ElementUI简介 二.今日总结 1.页面静态化 通过html页面&#xff0c;制作展示所有制作添加页面 制作修改页面以及批量删除制作分页制作多条件查询 一、昨日重点复习 1.表单验证 在vue中使用rule…

SSM整合过程梳理

文章目录 前言一.SSM整合流程二.整合配置2.1添加依赖2.2创建项目包结构2.3创建SpringConfig配置类2.4创建JdbcConfig配置类2.5创建MybatisConfig配置类2.6创建jdbc.properties2.7创建SpringMVC配置类2.8创建Web项目入口配置类 三.功能模块3.1创建模型类3.2编写Dao接口3.3编写Se…

ssm整合详解

最近做项目用到了ssm,虽然以前用过ssm但这段时间发现&#xff0c;用过不代表就会了&#xff0c;即使以前用过&#xff0c;但现在要搭一个ssm框架不看教程还是很难&#xff0c;最基本的maven仓库需要哪些坐标都搞不清楚&#xff0c;所以今天打算写篇博客梳理一下。 一.基础梳理…

SSM整合分页插件

目录 一.环境配置 1.分页插件依赖 2.在Mybatis里面配置的内容 二.使用分页插件 1.在ServiceImpl层开启分页插件&#xff08;即查询数据库前开启&#xff09; 2.控制器方法 3.jsp页面进行整理 4.效果 5. 样式 6.常用的数据说明 一.环境配置 1.分页插件依赖 <depend…

SSM整合总结

这几天学完spring&#xff0c;springMVC&#xff0c;mybatis后&#xff0c;这两天试着去整合ssm&#xff0c;整合过程并不顺利&#xff0c;一是基础知识有的忘了&#xff0c;细节不能把握住&#xff0c;造成各种报错.看了各种视频&#xff0c;翻阅各种文章&#xff0c;多多少少…

SSM整合shiro

1.完成ssm整合shiro 企业中老项目还在使用ssm框架。 准备数据库 数据结构 张三 -user:query user:add user:update user:delete 李四 ---》user:query user:add user:update 王五-----》user:query user:export 搭建ssm的环境 &#xff08;1&#xff09;创建一个maven的web工…

SSM整合

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

SSM整合,手把手教程,详解思路讲解

前言 一&#xff0c;工程创建 1.新建Maven项目&#xff0c;项目架构增加web支持 2.Maven本地仓库配置 3.集成Tomcat&#xff0c;搭建web环境 二&#xff0c;导入依赖 三&#xff0c;配置文件编写 1.web环境配置文件 2.spring整合环境配置文件 2.1 controller层(spring…

SSM整合完整流程讲解

目录 一、SSM整合说明 1、各个框架担任的角色 2、两个Ioc容器的创建顺序 1&#xff09;SpringMVC中IOC容器的创建时间 2&#xff09;Spring中IOC容器的创建时间 3&#xff09;Spring提供的监听器ContextLoaderListener 二、SSM整合步骤 1、准备工作 1&#xff09;导入…

Unresolved Dependencies

在Android Studio的开发中&#xff0c;在软件中集成了ButterKnife插件&#xff0c;另外需要集成ButterKnife的jar包。因为本地没有现成的&#xff0c;所以在module的build.gradle文件中添加了如下代码&#xff1a; compile com.jakewharton:butterknife:7.0.1 结果报了如下错误…

Pycharm 出现Unresolved reference ‘‘ 错误的解决方法 --- 亲测有效

在用Pycharm写项目的时候的时候碰到一个很无语的问题 路径明明没有问题&#xff0c;运行也没有出错&#xff0c;但就是爆红&#xff0c;逼死强迫症啊。。。 多方查找最后解决了。步骤如下&#xff1a; File–>Settings–>Project Structure–>找到问题目录–>Sou…

PyCharm错误提示- Unresolved reference 的解决

使用PyCharm加载工程时,发生解析错误 原本这个工程是可以通过 python manange.py runserver 方式运行的,说明文件是正常的。关键在于PyCharm环境的问题。 查找了半天,安装一些网上的解决方式,尝试了以下几种方式: 1,修改忽略文件 File –>Settings –>Editor –…

Goland 提示 Unresolved reference 错误解决

之前一直正常的项目&#xff0c;莫名其妙的 database/sql 包下的方法、结构体等等IDE都无法识别&#xff0c;出现一堆Unresolved reference错误提示&#xff0c;但包导入路径可以正确定位&#xff0c;而且项目运行也正常&#xff0c;其他包都正常&#xff0c;另一个项目下同样使…

error LNK2019: unresolved external symbol

error LNK2019: unresolved external symbol&#xff1a;链接器找不到所需要的东西 此时ctrlF7进行编译&#xff0c;没有报错&#xff0c;在这个程序中调用的是Log函数&#xff0c;我们实际上并没有这个函数&#xff0c; 我们有的函数是Logr函数&#xff0c;在编译过程中编译器…

Unresolved reference ‘matplotlib‘解决方法

首先打开最左边的file-settings 然后点这个添加 找想添加的 最后点最下面的install Package 就可以啦

快速解决Pycharm中unresolved reference

在用Pycharm时老是报红&#xff0c;虽然不影响运行&#xff0c;但是真的很不好看。 如下&#xff1a; 根据网上大部分教程设置source root&#xff0c;设置之后还是没有变化。 然后我发现了这个东西&#xff0c;真的是立即生效&#xff0c;就是不知道改了之后有没有什么后遗症…

解决unresolved symbol _RamfuncsLoadEnd

问题描述 移植大佬的文件之后&#xff0c;发现报错 问题解决 添加F28335.cmd到工程中

Redisson cannot use an unresolved DNS server address问题解决

概述 本文记录Mac IDEA开发&#xff0c;公司 远程办公时遇到的两个问题&#xff0c;记录一下。 问题 cannot use an unresolved DNS server address: [fe80::1%en0]:53 在家里&#xff0c;连上公司的VPN后&#xff0c;即可打开公司内网&#xff0c;远程办公。一切正常。某…