SSM从入门到上手-全面讲解SSM框架的使用.

一、SSM框架整合

        将Spring、Spring MVC和MyBatis结合在一起,形成一个高效且易于维护的Web应用程序架构。具体整合的方式如下:

        Spring管理Bean:Spring负责管理所有的Java对象,包括Service层、DAO层等。通过Spring的IoC容器进行依赖注入(DI)。

        Spring MVC处理请求:当用户发起请求时,Spring MVC的DispatcherServlet会接收请求,并将请求转发给相应的Controller进行处理。Controller处理完请求后,将模型数据返回给视图(JSP、Thymeleaf等)。

        MyBatis进行数据库操作:在Service层调用DAO层,使用MyBatis进行数据库查询或更新操作。MyBatis通过XML或注解提供SQL映射,Spring负责事务管理。

二、SSM框架的优缺点

2.1、优点

分层清晰:SSM框架采用了经典的MVC设计模式,将应用程序的逻辑分为三层:Controller、Service和DAO层。每一层都有明确的职责,有利于代码的维护和扩展。

灵活性高:MyBatis不像JPA或Hibernate那样进行自动化的数据库操作,它允许开发者手动编写SQL语句,从而提供了更高的灵活性。

易于集成:Spring、Spring MVC和MyBatis都可以非常容易地与其他框架进行集成。

广泛应用:SSM框架的组合是许多企业级应用中非常常见的架构,社区支持活跃,文档丰富,使用经验丰富。

2.2、缺点

配置繁琐:SSM框架中,Spring的配置文件通常比较复杂,尤其是对于初学者来说,理解和配置Spring的XML配置文件可能会有一定难度。

学习曲线陡峭:虽然Spring提供了大量的功能,但对于初学者来说,学习Spring的核心概念(如IoC、AOP)可能需要一定的时间和精力。

MyBatis的SQL:虽然MyBatis提供了更高的灵活性,但开发者需要编写和维护SQL,可能增加了开发和维护的负担,尤其是在大型项目中。

三、整合

3.1、引入依赖

3.2、配置web.xml

配置springmvc的前端控制器,设置spring的配置文件。

3.3、配置spring

Spring负责管理应用中的Bean(对象)生命周期和依赖注入。我们需要配置Spring容器来定义Bean,声明它们的作用域和生命周期。

步骤:

创建spring-dao.xml配置文件:

  1. 配置数据库数据源连接信息。
  2. 配置mybatis信息。
    1. 注入数据源
    2. 加载mybatis配置
    3. 自动扫描mapper.xml文件
    4. 配置别名
  3. 配置mapper文件
    1. 注入sqlSessionFactory
    2. 动态代理

3.4、配置springmvc

Spring MVC负责处理Web层的请求和响应,控制器的请求处理。我们需要配置Spring MVC来处理URL映射和视图解析。

步骤:

创建spring-web.xml配置文件。

  1. 自动扫描controller包。
  2. 开启mvc注解驱动。
  3. 配置静态文件。
  4. 配置视图解析器。

3.5、配置spring service

扫描service包下的注解

3.6、配置mybatis

MyBatis相关全局属性设置。

3.7、创建controller

Controller是Spring MVC中的核心部分,负责接收用户请求并返回响应。我们可以在Controller中编写方法,来处理具体的URL请求。

步骤:

使用@Controller注解标记类,表示该类是一个控制器。

使用@RequestMapping注解定义URL映射。

3.8、创建Service层

Service层用于处理业务逻辑,它会调用DAO层的方法进行数据库操作。

步骤:

在Service类中编写具体的业务方法,调用DAO层接口处理数据库操作。

使用@Service注解标记Service类。

3.9、创建DAO层

DAO层用于与数据库交互。通过MyBatis,我们定义Mapper接口和对应的SQL映射文件来执行数据库操作。

步骤:

创建Mapper接口,定义查询、插入、更新和删除等方法。

创建对应的Mapper XML文件,定义SQL语句。

四、整合-登陆

4.1、前端-jsp

4.2、控制层-controller

4.3、实现层


4.4、持久层

五、整合-列表展示


六、整合-编辑


七、整合-添加



八、整合-删除


九、部署

9.1、准备 .war 文件


9.2、拷贝 .war 文件到 Tomcat 的 webapps 目录

Tomcat会自动扫描webapps目录并部署其中的.war文件。将你的.war文件复制到Tomcat安装目录下的webapps文件夹中。

9.3、启动 Tomcat

启动Tomcat服务。你可以在Tomcat的bin目录下找到启动脚本:

  1. Windows系统运行startup.bat。
  2. Linux或macOS系统运行startup.sh。

9.4、访问应用

Tomcat会自动解压并部署.war文件。如果文件名是ssm.war,你可以通过浏览器访问:http://localhost:8080/ssm/

如果部署成功,Tomcat会自动创建一个名为ssm的文件夹,并解压.war文件到该文件夹内。

通过以上内容便可轻轻松松使用SSM.是不是超级简单.有任何问题欢迎留言哦!!!

重点!重点!重点!

遇到问题不用怕不如来我的知识库找找看,也许有意想不到的收获!!!

易网时代-易库资源-易库教程:.NET开发、Java开发、PHP开发、SqlServer技术、MySQL技术-开发资料大全-易网时代-易库资源-易库教程 (escdns.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学员答题pk知识竞赛小程序怎么做

制作学员答题PK知识竞赛小程序,主要有以下步骤: 一、规划设计 明确需求:确定小程序的使用场景是校园知识竞赛、培训机构考核还是企业内部培训等。答题功能,规定答题的具体规则,包括题目类型(单选、多选、…

视频分析设备平台EasyCVR视频技术驱动下,监控上墙全组件解析与组网应用方案

随着数字化进程的加速推进,视频监控技术在工业、商业、社区等诸多领域得到了广泛应用。尽管不同场景对监控功能的具体需求存在差异,但底层硬件架构具有显著的共性特征。实际部署中,仅需依据网络环境等实际情况,灵活调整设备的连接…

idea使用docker插件一键部署项目

一、首先保证我们电脑上已经安装了docker docker -v查看docker版本,如果不能识别,需要先下载docker destop,在官网下载正常安装即可。 安装成功就可以使用docker 命令了 二、idea下载docker插件并配置docker参数 我是通过tcp连接docker服务…

SQL Tuning Advisor

什么是SQL Tuning Advisor STA可以用来优化那些已经被发现的高负载SQL. 默认情况下, Oracle数据库在自动维护窗口中自动认证那些有问题的SQL并且执行优化建议,找寻提升高负载SQL执行计划性能的方法. ** 如何查看自动优化维护窗口产生的报告? ** SQL> set ser…

uniapp-商城-31-shop页面中的 我的订单

前面的章节讲了很多关于页面 布局 的知识。 现在来看看其他栏目,我的订单页面。 1 页面样式图 基本的样式包含shop页面 我的订单 点击我的订单,跳转到订单页面 点击订单的每一条订单,跳转到订单详情 2、创建订单页面 2.1 创建sub页面文件…

深入探讨JavaScript性能瓶颈与优化实战指南

JavaScript作为现代Web开发的核心语言,其性能直接影响用户体验与业务指标。随着2025年前端应用的复杂性持续增加,性能优化已成为开发者必须掌握的核心技能。本文将从性能瓶颈分析、优化策略、工具使用三个维度,结合实战案例,系统梳理JavaScript性能优化的关键路径。 一、Ja…

基于AI与drawio的图表生成技术及其在学术研究中的应用前景分析

一、研究背景与冲突 在当今数字化时代,学术研究与信息传播的方式发生了深刻变革。随着数据量的爆炸式增长以及研究内容的日益复杂,高效、精准地呈现研究成果变得至关重要。图表作为一种直观、简洁且信息承载量大的表达方式,在学术研究中扮演着…

uniapp 仿小红书轮播图效果

通过对小红书的轮播图分析&#xff0c;可得出以下总结&#xff1a; 1.单张图片时容器根据图片像素定高 2.多图时轮播图容器高度以首图为锚点 3.比首图长则固高左右留白 4.比首图短则固宽上下留白 代码如下&#xff1a; <template><view> <!--轮播--><s…

【ORACLE】记录一些ORACLE的merge into语句的BUG

【ORACLE】记录一些ORACLE的merge into语句的BUG 一、自相矛盾-DML重启动行为差异,违反acid原则 发现版本&#xff1a;10g ~ 23ai 这个用例在我之前的文章里有提过&#xff0c;ORACLE和PG系关于并发事务行为有一个非常大的差异&#xff0c;就是ORACLE在某些并发冲突的场景下会…

2025上海车展:光峰科技全球首发“灵境”智能车载光学系统

当AI为光赋予思想&#xff0c;汽车将会变成什么样&#xff1f;深圳光峰科技为您揭晓答案。 2025年4月23日&#xff0c;在刚刚开幕的“2025上海车展”上&#xff0c;全球领先的激光核心器件公司光峰科技举办了主题为“AI光影盛宴&#xff0c;智享未来出行”的媒体发布会&#x…

密码学的hash函数,哈希碰撞, collision resistance, BTC用到的SHA-256简介

密码学中的哈希函数、哈希碰撞、抗碰撞性&#xff08;collision resistance&#xff09;以及比特币中使用的 SHA-256 的简明介绍&#xff1a; &#x1f9e9; 一、哈希函数&#xff08;Hash Function&#xff09; 定义&#xff1a; 哈希函数是一种将任意长度的输入&#xff08;…

unity TEngine学习4

上一篇我们学习了UI部分&#xff0c;这一篇我们学习其他部分&#xff0c;按照老规矩还是先打开官方文档 ResourceModule 在官方文档里介绍了当前加载的设置&#xff0c;但是我们是小白看不懂&#xff0c;那就不管他内部怎么实现的&#xff0c;我们主要看下面的代码给的方法&am…

【AI训练环境搭建】在IDE(Pycharm或VSCode)上使用WSL2+Ubuntu22.04+Conda+Tensorflow+GPU进行机器学习训练

本次实践将在IDE&#xff08;Pycharm或VSCode&#xff09;上使用WSL2Ubuntu22.04TensorflowGPU进行机器学习训练。基本原理是在IDE中拉起WSL2中的Python解释器&#xff0c;并运行Python程序。要运行CondaTensorflowGPU你可能需要进行以下准备工作。 1. 此示例中将使用一个mnis…

【华为OD机试真题E卷】521、 机器人可活动的最大网格点数目 | 机试真题+思路参考+代码解析(E卷复用)(C++)

文章目录 一、题目题目描述输入输出样例1 一、代码与思路&#x1f9e0;C语言思路✅C代码 一、题目 参考链接&#xff1a;https://sars2025.blog.csdn.net/article/details/141748083 题目描述 现有一个机器人口&#xff0c;可放置于MxN的网格中任意位置&#xff0c;每个网格包…

windows端远程控制ubuntu运行脚本程序并转发ubuntu端脚本输出的网页

背景 对于一些只能在ubuntu上运行的脚本&#xff0c;并且这个脚本会在ubuntu上通过网页展示运行结果。我们希望可以使用windows远程操控ubuntu&#xff0c;在windows上查看网页内容。 方法 start cmd.exe /k "sshpass -p passwd ssh namexxx.xxx.xxx.xxx "cd /hom…

Vue3集成浏览器API实时语音识别

效果示例 用法 <!-- 浏览器语音识别 --> <BrowserSpeechRecognitionModal v-if"showModal" :isOpen"showModal" close"showModal false" confirm"handleRecognitionResult" />const showModal ref(false); const input…

k8s 手动续订证书

注意:如果是高可用环境,本文的操作需要在所有控制节点都执行。 查看证书是否过期 kubeadm certs check-expirationkubeadm certs renew可以续订任何特定证书,或者使用子命令all可以续订所有证书: kubeadm certs renew all使用 kubeadm 构建的集群通常会将admin.conf证书复…

每日一道leetcode(补充版)

1679. K 和数对的最大数目 - 力扣&#xff08;LeetCode&#xff09; 题目 给你一个整数数组 nums 和一个整数 k 。 每一步操作中&#xff0c;你需要从数组中选出和为 k 的两个整数&#xff0c;并将它们移出数组。 返回你可以对数组执行的最大操作数。 示例 1&#xff1a; …

基于Keras3.x使用CNN实现简单的猫狗分类

使用CNN实现简单的猫狗分类 完整代码见&#xff1a;基于Keras3.x使用CNN实现简单的猫狗分类&#xff0c;置信度约为&#xff1a;85% 文章目录 概述项目整体目录环境版本注意 环境准备下载miniconda新建虚拟环境基于conda虚拟环境新建Pycharm项目下载分类需要用到的依赖 数据准备…

中介者模式:解耦对象间复杂交互的设计模式

中介者模式&#xff1a;解耦对象间复杂交互的设计模式 一、模式核心&#xff1a;用中介者统一管理对象交互&#xff0c;避免两两直接依赖 当系统中多个对象之间存在复杂的网状交互时&#xff08;如 GUI 界面中按钮、文本框、下拉框的联动&#xff09;&#xff0c;对象间直接调…