一步一步,学习如何搭建Spring+Spring MVC+MyBatis SSM框架开发环境

2023-11-15

目录导航

前言

一、准备工作

二、创建Maven项目

三、pom.xml配置

四、配置web.xml spring*.xml文件

五、编写Controller和相应jsp页面

六、集成mybatis

七、测试

八、TroubleShooting

最后

 

前言

随着技术不断发展,在进行Java Web开发时,常常会用到一些技术框架来提高可扩展性、降低耦合度、提升效率等。下面就一步一步介绍如何搭建当下流行的Spring、Spring MVC以及MyBatis框架集成开发环境。

一、准备工作

  • 硬件:电脑
  • 软件:
  •         安装Java并配置 
  •         安装maven并配置
  •         集成开发环境IDE(P.S. 目前比较流行的是eclipse、IntelliJ Idea。本文用Idea)
  •         数据库(本文用Mysql)

二、创建Maven项目

在Idea上File->New->Project 选择左侧的Maven 

并且勾选“Create from archetype”,选择列表中的maven-archetype-webapp:RELEASE 如图:

点击Next 填写信息:

点击Next并添加保存路径->点击Finish即可

应该会生成类似的目录结构,细节不赘述了。

 

 

三、pom.xml配置

首先,我们来配置一下Spring、Spring MVC、MyBatis所需的Jar包依赖。

根据查阅Spring文档我们可以知道Spring需要添加:

  • spring-core
  • spring-context
  • spring-jdbc
  • spring-test
  • spring-web

Spring MVC需要添加:

 

  • spring-webmvc 

因为需要连接Mysql,要添加Mysql连接的Jar包依赖(版本与你安装的Mysql版本相同即可):

 

  • mysql-connector-java

另外需要JSTL相关的包,页面渲染会用到:

 

  • jstl
  • standard


pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<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>org.cdx</groupId>
    <artifactId>ssm_demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <spring.version>5.0.1.RELEASE</spring.version>
        <mysql.version>5.1.40</mysql.version>
        <mybatis.version>3.4.5</mybatis.version>
        <mybatis.spring.version>1.3.1</mybatis.spring.version>
        <jstl.version>1.2</jstl.version>
        <standard.version>1.1.2</standard.version>
        <commons.dbcp.version>1.2.2</commons.dbcp.version>
        <aspectj.version>1.7.4</aspectj.version>
        <cglib.version>3.1</cglib.version>
        <log4j.version>1.2.17</log4j.version>
    </properties>

    <dependencies>
        <!-- spring-core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- spring-test -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- spring-web -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- spring-webmvc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一步一步,学习如何搭建Spring+Spring MVC+MyBatis SSM框架开发环境 的相关文章

  • org.apache.tomcat.jdbc.pool.DataSource 不再位于 tomcat 7 dbcp jar 中?

    我正在尝试使用 tomcat dbcp jar 版本 7 0 30 为 tomcat dbcp 创建一个 spring 管理的独立池 然而 Tomcat的文档中提到的似乎是org apache tomcat jdbc DataSource类
  • Spring Security 上的组和 acl

    我想使用 Spring Security 来管理用户 组和权限 我想使用 ACL 来保护我的域对象 但我找不到将组分配给 acl 的方法 例如 我有用户和组 每个组可以拥有以下证券 管理论坛 可以是类似的角色ROLE FORUM MANAG
  • iText7:如何获取段落的实际宽度

    在添加到文档之前 我需要知道段落的宽度 以磅为单位 我在这里搜索并找到了 Alexey 关于段落高度的答案 所以我用宽度做了它 但它不起作用 无论段落有多长 始终返回矩形的宽度 我尝试了这段代码 private float getRealP
  • Encog - 如何加载神经网络的训练数据

    The NeuralDataSet我在实际中看到的对象除了 XOR 之外什么都没有 它只是两个小数据数组 我无法从文档中找出任何内容MLDataSet 似乎所有内容都必须立即加载 但是 我想循环遍历训练数据 直到到达 EOF 然后将其算作
  • Spring - 两种不同的 POST 方法,具有相同的 URL,但生成的内容类型不同

    我有以下控制器 RequiredArgsConstructor RestController public class OwnerViewController implements ApiOwnerViewController privat
  • 关于java中同步的问题;何时/如何/到什么程度

    我正在开发我的第一个多线程程序 并在同步的几个方面陷入困境 我已经浏览了 oracle sun 主页上的多线程教程 以及这里的一些关于 SO 的问题 所以我相信我知道什么是同步 然而 正如我提到的 有几个方面我不太确定如何弄清楚 我以明确问
  • 清理 IntelliJ 中构建的 Play 框架

    我有一个拼写错误conf routes文件导致 Play Framework 生成错误命名的类 重建项目并运行Invalidate Caches并没有解决 IntelliJ 中的问题 当我手动运行时重新生成了不正确的类文件play clea
  • Java SWT 用户输入验证

    在 SWT 中进行用户输入验证时 Java 约定是什么 我读到有 FieldEditors 它们是非常方便的字段 但遗憾的是仅适用于首选项和对话框 我还了解到有一个 IValidator 接口 但它经常与数据绑定一起使用 就我而言 我的大多
  • 在 JUnit 测试中读取资源文件

    我在单元测试中读取文本文件 并将一些输入文本文件放置在资源文件夹中 以下是目录结构 src gt com gt au gt myapp gt util gt MyFileReader 测试 gt com gt au gt myapp gt
  • 飞碟中的外部 CSS

    我想知道如何在 Flying Saucer 中包含外部 CSS 在此之前THB我检查了所有可用的链接StackOverflow但它们没有帮助 这就是为什么我自己做这个的原因 TestCSS xhtml重命名版本TestCSS html 所以
  • 在单独的模块中使用 Spring AOP 方面

    我在一个 Maven 项目模块中有一个方面 com x NiceAspect 在一个单独的 Maven 模块中有一个类 com x NiceClass 这些模块具有相同的 POM 父级 共同创建一个项目 我想要实现的目标是拥有一个通用的方面
  • 使用 https 的 Java Jersey RESTful Web 服务

    我是 Java EE 的新手 正在开发一个 RESTful API 其中每个 API 调用用户都会发送编码的凭据 我的问题是如何通过默认的 http 实现 https 协议并确保我的连接安全 我正在使用 Jersey Restful Web
  • 具有多个注释的方法上的 AspectJ 切入点

    使用加载时编织 纯 AspectJ 我们有2个注释 Time and Count 以及一些带注释的方法 Time name myMethod1Time Count name myMethod1Count public void myMeth
  • 如何知道一个点是否在复杂的 3D 形状内(.ply 文件)

    我正在研究一个Java女巫项目真是要了我的命 经过几天在不同论坛上的研究 寻找我真正需要的东西 我来寻求你的帮助 我的数据 ply 文件 包含由许多三角形组成的 3D 形状 一个点 3D坐标 我想知道这个点是否包含在复杂的 3D 形状内 我
  • java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException

    我想将 apache cli 添加到我的应用程序中 但我有问题 当我尝试运行它时显示这些错误 Error A JNI error has occurred please check your installation and try aga
  • java.lang.OutOfMemoryError:尝试将 Java 对象转换为 Json 字符串时的 Java 堆空间

    我尝试将 csv 文件转换为 200K 对象的 Json 文件 其中对象代表 csv 中的 1 行 我在 32 位上安装了 Java 并且项目配置 VM 参数 Xmx1024m 但是我得到 Exception in thread main
  • JAXB 枚举字段未序列化

    我有以下课程 package dictionary import java io Serializable import java util Objects import javax xml bind annotation XmlEleme
  • POJO 支持使用omnifaces 自动完成primefaces

    我正在尝试在我的项目中使用 primefaces 自动完成组件 以避免将特定转换器写入我尝试使用的每个列表对象全能面孔 http showcase omnifaces org converters ListConverter如建议的here
  • Java:将秒转换为分钟、小时和天[重复]

    这个问题在这里已经有答案了 任务是 输出应如下所示 最好回显输入 您输入了 500 000 秒 即 5 天 18 小时 53 分钟 20 秒 5天18 53 20小时 我该怎么做呢 最容易理解和做到的方法是什么 讲师还说 没有硬编码 我不太
  • Spring 的 LdapTemplate 搜索:PartialResultException:未处理的延续引用;剩余名称 '/'

    我通过 LDAP 为某个使用 spring 制作的应用程序添加用户 虽然这适用于大多数情况 但在某些情况下 它不起作用 检索我使用的用户 public class LdapUserServiceImpl implements ILdapUs

随机推荐

  • Kubernetes之(十九)资源指标和集群监控

    目录 Kubernetes之 十九 资源指标和集群监控 资源指标和资源监控 metrics server 部署metrics server Prometheus 概述 部署prometheus Grafana数据展示 Kubernetes之
  • .net Core竟然支持xamrain

    终于明白 net Core的意义 以前在微软推出 net Core时 我有点不明白 为啥微软要弄个阉割版的net平台 现在 刚接触 xamarin跨平台开发 发现 net Core竟然轻松支持xamrain开发安卓程序 微软微软 真是用心良
  • Linux系统常用命令

    Linux系统常用命令 一 常用快捷键 ctrl shift table 表示临时变大 ctrl table 表示临时变小 ctrl t 打开多个 一个 终端 永久生效 终端上的 edit 属性设置 ctrl l clear 清屏 ctrl
  • 2021蓝桥杯模拟赛-受伤的皇后

    题目 题目链接 题解 DFS 八皇后问题改编而已 加入判断左上三格内和右上三格内是否存在皇后 代码 include
  • MYSQL对表进行操作

    添加列 基本形式 alter table 表名 add 列名 列数据类型 after 插入位置 示例 在表的最后追加列 address alter table students add address char 60 在名为 age 的列后
  • 84. Largest Rectangle in Histogram

    84 Largest Rectangle in Histogram Given n non negative integers representing an elevation map where the width of each ba
  • 组合预测模型

    组合预测模型 MLP RF多层感知机结合随机森林多输入单输出回归预测 Matlab程序 目录 组合预测模型 MLP RF多层感知机结合随机森林多输入单输出回归预测 Matlab程序 预测结果 评价指标 基本介绍 程序设计 参考资料 预测结果
  • 【Java基础】之深入理解四中访问权限

    这篇文章将深入讲解Java的四种访问权限 访问权限介绍 访问权限控制指的是 本类及本类内部的成员 成员变量 成员方法 内部类 对其他类的可见性 即这些内容是否允许其他类访问 Java 的访问权限一共有四种 public protected
  • iOS提交审核时报错:您必须为要添加的 App 提供版权信息

    可以随便填 但是必填 否则被拒 很耽搁时间
  • java面向对象超详细总结(期末必备)

    文章目录 面向对象 什么是对象 对象的组成 类是什么 类的组成 类的创建语法 类的使用 使用类必须为类创建对象 调用属性 调用方法 方法的重载 构造方法 构造函数 构造器 构造器的语法 对象的引用 this关键字 OOP练习 练习一 案例代
  • LINQ的基本使用

    一 什么是LINQ 长期以来 开发社区形成以下的格局 1 面向对象与数据访问两个领域长期分裂 各自为政 2 编程语言中的数据类型与数据库中的数据类型形成两套不同的体系 例如 C 中字符串用string数据类型表示 SQL中字符串用NVarc
  • 静态代码检测遇到的一些问题总结

    393 S Single parameter constructor not explicit 原因 只有一个参数的构造函数存在隐式类型转换的可能 解决方法 在单参数构造函数之前添加 explicit 例子 class test publi
  • HTML5中的save()和restore()方法的用法

    HTML5中的save 和restore 方法的用法 1 save 方法将当前的绘图环境压入堆栈顶部 2 restore 方法将从栈顶部弹出的一组状态信息 并根据此恢复当前绘图环境的各个状态
  • OpenWrt入门完美教程

    近来由于毕业设计需要用到摄像头模块 考虑利用 OpenWrt UVC mjpg streamer 方案驱动摄像头模块 学习了一篇很好的OpenWrt入门美文 原文链接如下 http zhidx com p 186 html 从零开始学习Op
  • 【Ubuntu 3090 CUDA配置】一文缕清 驱动+CUDA Toolkit+cuDNN+pytorch+cudatoolkit 环境配置流程

    2021年12月9日更新 可查看本人最新的CUDA环境配置博客 https zhuanlan zhihu com p 443114377 系对本文的提炼 归纳与总结 目录 环境配置流程总结 2021年6月10日更新 重要概念 务必看 写在开
  • 数字信号处理第二次试验:时域采样与频域采样

    数字信号处理第二次试验 时域采样与频域采样 前言 一 实验目的 二 实验原理与方法 三 实验环境 四 实验内容及步骤 五 实验结果截图 含分析 实验程序运行结果及分析讨论 六 思考题 想说点啥 前言 为了帮助同学们完成痛苦的实验课程设计 本
  • js去掉字符串的空格

    1 trim方法 过滤字符串两端的空格 var str xin xiang console log str trim xin xiang trim 是最常用的方法 也是最方便的方法 缺点 只能去除字符串两端的空格 不能去除中间的空格 2 r
  • Node.js基础入门第七天

    经过前面六天的知识学习 对Node js开发的基础知识 有了一个初步的掌握 今天继续学习Node js后端web开发的相关知识 本篇文章作为Node js服务端程序开发的基础入门知识 仅供学习分享使用 如有不足之处 还请指正 创建服务端程序
  • JS的findIndex在对象中依值查找相应的索引

    博大精深的JS 永远都学不完的好东东 JS根据对象值查找对应索引 let arr id 1 name a id 2 name b id 3 name c 查找id 3记录的索引号 let i arr findIndex v gt v id
  • 一步一步,学习如何搭建Spring+Spring MVC+MyBatis SSM框架开发环境

    目录导航 前言 一 准备工作 二 创建Maven项目 三 pom xml配置 四 配置web xml spring xml文件 五 编写Controller和相应jsp页面 六 集成mybatis 七 测试 八 TroubleShootin