SpringBoot整合Juint,ssm框架
目录
SpringBoot整合Juint
1.导入相关的依赖
2.创建测试类,使用注解@SpringBootTest
SpringBoot整合ssm框架
1.使用脚手架创建Spring项目
2.修改pom.xml
我先修改了SpringBoot的版本,修改为2.3.10.RELEASE,因为SpringBoot版本太高会出现各种各样奇怪的报错
导入的依赖的版本我也进行了修改
数据库驱动
java版本修改
由于我们还要使用druid数据源进行连接数据库,我们还要导入druid依赖
3.编写application.yml文件的数据库连接信息
4.编写dao层
5.使用测试类(@SpringBootTest)来进行测试
SpringBoot整合Juint
1.导入相关的依赖
<!--整合junit--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
2.创建测试类,使用注解@SpringBootTest
//@SpringBootTest//会在相同的包下寻找SpringBoot引导类并进行加载,如果和SpringBoot引导类不在同一个包名下,就会报错@SpringBootTest
class SpringDay8SpringBoot2ApplicationTests {@Autowiredprivate Book booK;@Testvoid contextLoads() {booK.save();}}
这个测试类处于com.hhh包下

SpringBoot会根据改测试类处于的包名,进而去相同的包名下寻找SpringBoot引导类,并进行加载

如果 测试类和引导类处于不同的包,我们可以使用@SpringBootTest注解的classes属性进行赋值加载
//@SpringBootTest//会在相同的包下寻找SpringBoot引导类并进行加载,如果和SpringBoot引导类不在同一个包名下,就会报错//所以我们可以直接指定引导类
@SpringBootTest(classes = SpringDay8SpringBoot2Application.class)
class SpringDay8SpringBoot2ApplicationTests {@Autowiredprivate Book booK;@Testvoid contextLoads() {booK.save();}}
SpringBoot整合ssm框架
由于SpringBoot是简化Spring开发的,而SpringMVC又是Spring的一部分,所以不用去整合,所以要整合的就是mybatis框架
1.使用脚手架创建Spring项目
选择Spring Initializr
选择maven和jar包
选择mybatis框架和Mysql驱动
2.修改pom.xml
我先修改了SpringBoot的版本,修改为2.3.10.RELEASE,因为SpringBoot版本太高会出现各种各样奇怪的报错

导入的依赖的版本我也进行了修改

数据库驱动

java版本修改


由于我们还要使用druid数据源进行连接数据库,我们还要导入druid依赖
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency>
完整的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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.10.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!-- Generated by https://start.springboot.io --><!-- 优质的 spring/boot/data/security/cloud 框架中文文档尽在 => https://springdoc.cn --><groupId>com.hhh</groupId><artifactId>spring_day8_springBootSsm</artifactId><version>0.0.1-SNAPSHOT</version><name>spring_day8_springBootSsm</name><description>spring_day8_springBootSsm</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
<!-- <scope>runtime</scope>--></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-test</artifactId><version>2.3.0</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
3.编写application.yml文件的数据库连接信息
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mysql_day2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=falseusername: rootpassword: 123456type: com.alibaba.druid.pool.DruidDataSource

通过对dataSource属性进行赋值,SpringBoot会创建出DataSource类对象,SqlSessionFactory类对象,并交给Spring管理
4.编写dao层
@Mapper
public interface BookDao {@Select("select * from book;")List<Book> getAll();
}
对于这个接口类,我使用了@Mapper注解,把这个类交给Spring管理,并告诉了Spirng这是一个接口类,然后Spring会帮忙创建代理对象
可以比较的是,如果不使用SpringBoot,我们需要在MybatisConfig配置类中写接口扫描的方法来对dao层的所有接口进行扫描,并创建代理对象
这是Book对象
public class Book {private Integer id;private String name;private String description;private Double score;@Overridepublic String toString() {return "Book{" +"id=" + id +", name='" + name + '\'' +", description='" + description + '\'' +", score=" + score +'}';}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public Double getScore() {return score;}public void setScore(Double score) {this.score = score;}
}
这是数据库

5.使用测试类(@SpringBootTest)来进行测试
@SpringBootTest
class SpringDay8SpringBootSsmApplicationTests {@Autowiredprivate BookDao bookDao;@Testvoid contextLoads() {List<Book> all = bookDao.getAll();System.out.println(all);}}
结果

相关文章:
SpringBoot整合Juint,ssm框架
目录 SpringBoot整合Juint 1.导入相关的依赖 2.创建测试类,使用注解SpringBootTest SpringBoot整合ssm框架 1.使用脚手架创建Spring项目 2.修改pom.xml 我先修改了SpringBoot的版本,修改为2.3.10.RELEASE,因为SpringBoot版本太高会出现…...
基于supervisor制作基于环境变量配置的redis
背景: redis 的镜像很多很多,但都需要直接修改配置文件,不符合我们公司当前环境变量解决一切容易配置的思路。 材料: 1、CentOS-Base.repo [base] nameCentOS-$releasever enabled1 failovermethodpriority baseurlhttp://mirr…...
动态规划part01 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
509. 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中 …...
CSS实现图片边框酷炫效果
一、前言 我们在浏览一些网页时,经常会看到一些好看酷炫的元素边框效果(如下图),那么这些效果是怎么实现的呢?我们知道,一般的边框,要么是实线,要么是虚线(点状…...
遇到 MySQL 死锁问题如何解决?
终于来到死锁检查线程的第三步,可以解决死锁了。 作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区出品,原创内容未经授权不得随意使用࿰…...
Pyinstaller打包OSError: could not get source code【终极解决】
pyinstaller 打包的时候,发现只要是torch.jit.script装饰的函数,会报以下错误: Traceback (most recent call last):File "torch/_sources.py", line 25, in get_source_lines_and_fileFile "inspect.py", line 1123, i…...
【计算机毕业设计】707高校宿舍管理系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
从C++看C#托管内存与非托管内存
进程的内存 一个exe文件,在没有运行时,其磁盘存储空间格式为函数代码段全局变量段。加载为内存后,其进程内存模式增加为函数代码段全局变量段函数调用栈堆区。我们重点讨论堆区。 托管堆与非托管堆 C# int a10这种代码申请的内存空间位于函…...
Linux进程间通信--IPC之无名管道
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。 IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams支持不同主机上的两个进程的IPC。...
Oracle19c数据库system密码锁定
一、在oracle 19c数据库中,cdb中system用户被锁定,locked 二、所在的pdb中的system用户状态是正常的,但不可用,连接的时候提示账号已锁定 三、解决 在cdb中将system用户解锁。 alter user system account unlock;...
java之hashCode() 方法和 equals(Object obj) 方法之间的关系
1、 hashCode() 方法和 equals(Object obj) 在Java中,hashCode() 方法和 equals(Object obj) 方法之间的关系是紧密相连的,特别是在使用基于哈希的集合(如 HashSet、HashMap、HashTable 等)时。这两个方法共同决定了对象在哈希表…...
首届「中国可观测日」圆满落幕
首届中国可观测日(Observability Day)在上海圆满落幕,为监控观测领域带来了一场技术盛宴。作为技术交流的重要平台,此次活动不仅促进了观测云与亚马逊云科技之间的深化合作,更标志着双方共同推动行业发展的重要里程碑。…...
[Docker][Docker NetWork][下]详细讲解
目录 1.网络管理命令1.docker network creatre2.docker network inspect3.docker network connect4.docker network disconnect5.docker network prune6.docker network rm7.docker network ls 2.docker bridge 详解0.基本概念1.默认 bridge2.自定义 bridge3.DNS解析4.端口暴露…...
安卓系统在未来如何更好地解决隐私保护与数据安全的问题?
安卓系统可以通过以下方式更好地解决隐私保护与数据安全的问题: 强化权限控制:安卓系统可以进一步加强对应用程序权限的管理,确保用户能够清楚地知道应用程序需要哪些权限,并给予用户更多的控制权,例如允许用户选择性地…...
MySQL innodb单表上限一般多少
参考:https://www.zhihu.com/question/351797203/answer/3137174084 1.MySQL innodb单表上限为啥都说是2k万条 2.GaussDB for MySQL 为啥可以突破单表2k万的限制 要讨论这两个问题,得先明确性下实际的DB部署环境 表是索引数据是放在磁盘上的…...
更小、更安全、更透明:Google发布的Gemma推动负责任AI的进步
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
基于Django框架的医疗耗材管理系统的设计实现-计算机毕设定制-附项目源码(可白嫖)48999
摘 要 在目前的形势下,科技力量已成为我国的主要竞争力。而在科学技术领域,计算机的使用逐渐达到成熟,无论是从国家到企业再到家庭,计算机都发挥着其不可替代的作用,可以说计算机的可用领域遍及生活、工作的各个方面。…...
物联网协议篇(1):modbus tcp和modbusRTU的区别是什么?
Modbus TCP和Modbus RTU是Modbus协议中的两种主要变体,它们在多个方面存在显著的区别。以下是它们之间的主要区别: 1. 物理层和数据传输方式 Modbus TCP (TCP/IP): 使用以太网作为物理层,通过TCP/IP协议进行通信。数据以数据包的形式在TCP连接上传输,具有较高的通信速度和…...
JVM系列 | 对象的消亡——HotSpot的设计细节
HotSpot 的细节实现 文章目录 HotSpot 的细节实现OopMap 与 根节点枚举根节点类型及说明HotSpot中的实现 OopMap 与 安全点安全点介绍如何保证程序在安全点上? 安全区域记忆集与卡表记忆集卡表 写屏障并发的可达性分析(与用户线程)并发可达性…...
vue 运行或打包过程报错 JavaScript heap out of memory(内存溢出)
安装 increase-memory-limit npm install increase-memory-limit 运行increase-memory-limit ./node_modules/.bin/increase-memory-limit 运行后会报以下错误: "node --max-old-space-size10240" 不是内部或外部命令,也不是可运行的程序…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...



