Spring Boot概述(二)

news2025/1/11 19:39:27

1.SpringBoot整合Junit

  • 1.搭建SpringBoot工程

  • 2.引入starter-test起步依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    
  • 3.编写测试类

    @Service
    public class UserService {
        public void add(){
            System.out.println("add...");
        }
    }
    
    1. 添加测试相关注解 @SpringBootTest
    1. 编写测试方法
    @SpringBootTest(classes = SpringbootTestApplication.class)
    //这里加不加classes取决于当前测试类包所在的位置
    //在引导类所在包的子包或同级则不需要加(会自动找引导类),否则要加
    class SpringbootRedisApplicationTests {
    
        @Autowired
        UserService userService;
        @Test
        void contextLoads() {
            userService.add();
        }
    }
    

2.SpringBoot整合Redis

  • 1.搭建SpringBoot工程

  • 2.引入redis起步依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    
    1. 配置redis相关属性
    spring:
      redis:
        host: 127.0.0.1 #redis的主机ip
        port: 6379
    
    1. 注入RedisTemplate模板
    1. 编写测试方法,测试(记得打开本机的redis)
    @SpringBootTest
    class SpringbootRedisApplicationTests {
    
        @Autowired
        private RedisTemplate redisTemplate;
    
        @Test
        public void testSet(){
            //存数剧
            redisTemplate.boundValueOps("name").set("zhangsan");
        }
        @Test 
        void testGet(){
            //获取数据
            Object name = redisTemplate.boundValueOps("name").get();
            System.out.println(name);
        }
    }
    
    

3.SpringBoot整洁MyBatis

  • 1.搭建SpringBoot工程

  • 2.引入mybatis起步依赖,添加mysql驱动

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    
    
    1. 编写DataSource和MyBatis相关配置
    • DataSource配置信息:

      spring:
        datasource:
          url: jdbc:mysql:///mzz
          username: root
          password: root
          driver-class-name: com.mysql.jdbc.Driver
      
    • 用注解开发可以不用写MyBatis的配置

    • xml开发MyBatis相关配置:

      mybatis:
        mapper-locations: classpath:mapper/*Mapper.xml #mapper映射文件路径
        type-aliases-package: com.itheima.springbootmybatis.domain #配置别名
      #config-location: 指定mybatis的核心配置文件
      
      
  • 4.定义表和实体类

    USE `mzz`;
    
    DROP TABLE IF EXISTS `t_user`;
    
    CREATE TABLE `t_user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `password` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    insert  into `t_user`(`id`,`username`,`password`) values (1,'zhangsan','123'),(2,'lisi','234');
    
    

    在这里插入图片描述

    @Data
    @ToString
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
        private Integer id;
        private String username;
        private String password;
    }
    
    
    1. 编写dao和mapper文件/纯注解开发 、
      xml开发:
    @Mapper
    @Repository
    public interface UserXmlMapper {
    
        public List<User> findAll();
    }
    
    
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.itheima.springbootmybatis.mapper.UserXmlMapper">
        <select id="findAll" resultType="user">
            select * from t_user
        </select>
    </mapper>
    
    

    纯注解开发:

    
    @Mapper
    @Repository//这里可加可不加,mybatis提供@Mapper可以代替
    public interface UserMapper {
        @Select("select * from t_user")
        public List<User> findAll();
    }
    
  • 6.测试

@SpringBootTest
class SpringbootMybatisApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Autowired
    private UserXmlMapper userXmlMapper;

    @Test
    void testFindAll() {
        List<User> res = userMapper.findAll();
        for (User user : res) {
            System.out.println(user);
        }
    }

    @Test
    void testFindAll1() {
        List<User> res = userXmlMapper.findAll();
        for (User user : res) {
            System.out.println(user);
        }
    }
}

参考视频:
https://www.bilibili.com/video/BV1Lq4y1J77x?spm_id_from=333.999.0.0

参考链接:
https://blog.csdn.net/qq_45966440/article/details/120450596?spm=1001.2014.3001.5502

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

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

相关文章

第二章IDEA快速上传项目到码云

文章目录 下载Git并配置邮箱上传到Github配置Git配置Github账号创建要上传码云的项目 上传到Gitee下载插件配置我们的Gitee账号 我们的IDEA功能很强大&#xff0c;所以肯定集成了快速上传项目到码云的功能 实际的开发中&#xff0c;代码都是采用IDE进行开发&#xff0c;所以我们…

day31—选择题

文章目录 1.在单处理器系统中&#xff0c;如果同时存在有12个进程&#xff0c;则处于就绪队列中的进程数量最多为&#xff08;D&#xff09;2.以下关于多线程的叙述中错误的是&#xff08;C&#xff09;3. 整数0x12345678&#xff0c;在采用bigendian中内存的排序序列是&#x…

AutoGPT是什么?超简单安装使用教程

1.AutoGPT 最近几天当红炸子鸡的是AutoGPT&#xff0c;不得不说AI发展真快啊&#xff0c;几天出来一个新东西&#xff0c;都跟不上时代的脚步了。 AutoGPT是一个开源的应用程序&#xff0c;展示了GPT-4语言模型的能力。这个程序由GPT-4驱动&#xff0c;自主地开发和管理业务。…

WIN10-22H2专业版_电脑维修人员专用装机系统镜像【03.27更新】

WIN10-22H2专业版是由站长亲自封装的电脑维修人员专用装机系统镜像&#xff0c;系统干净无广告&#xff0c;稳定长效不卡顿&#xff0c;适合电脑维修店用来维修电脑重装系统。此版本是WIN10系统里非常稳定的正式版本之一&#xff0c;适合在维修电脑时重装系统或者大批量装机使用…

OpenCV图像处理之傅里叶变换

文章目录 OpenCV图像处理之傅里叶变换图像处理之傅里叶变换流程图OpenCv图像处理之傅里叶变换OpenCv傅里叶变换之低通滤波OpenCv傅里叶变换之高通滤波 OpenCV图像处理之傅里叶变换 傅里叶变换&#xff1a;目的就是得到图像的低频和高频&#xff0c;然后针对低频和高频进行不同…

yolov5训练自己的目标检测模型

yolov5训练自己的目标检测模型 1.克隆项目并配置环境 1.1克隆项目 进入GitHub下载yolov5源码 点此进入 选择分支v5.0&#xff0c;并下载源码 anaconda激活相应环境 activate pytorch进入项目存放的地址 E: cd yolov5-master1.2 yolov5项目结构 ├── data&#xff1a;主…

信号生成和可视化——周期性/非周期性波形

信号生成和可视化 此示例说明如何使用 Signal Processing Toolbox™ 中提供的函数生成广泛使用的周期和非周期性波形、扫频正弦波和脉冲序列。尝试此示例Copy Command Copy Code 周期性波形 除了 MATLAB 中的 sin 和 cos 函数外&#xff0c;Signal Processing Toolbox™ 还…

客快物流大数据项目(一百一十五):熔断器 Spring Cloud Hystrix

文章目录 熔断器 Spring Cloud Hystrix 一、​​​​​​​Hystrix 简介 二、什么是雪崩效应

如何使用 Linux find 命令查找文件?

在Linux系统中&#xff0c;find命令是一个非常强大的工具&#xff0c;可以帮助用户查找文件或目录。这篇教程将向您展示如何使用Linux find命令来查找您需要的文件。 基本语法 在使用Linux find命令之前&#xff0c;您需要了解其基本语法。Linux find命令的基本语法如下&…

初识Java:数据类型与变量、运算符

哈喽大家好&#xff0c;这篇文章我将为大家分享关于Java的数据类型与变量和运算符。 文章目录 数据类型与变量数据类型整型类型byte类型short类型int类型long类型 浮点型字符类型布尔类型 变量浮点型变量布尔型变量类型转换隐式转化显式转化 运算符算术运算符增量运算符自增/自…

CSDN 周赛 47 期

CSDN 周赛 47 期 判断题单选题12 填空题编程题1、题目名称&#xff1a;最小差值&#xff08;30分&#xff09;2、题目名称&#xff1a;风险投资&#xff08;45分&#xff09; 小结 判断题 中国古代就发现并证明了勾股定理&#xff0c;并在《周髀算经》中出现了“勾三股四弦五”…

Linux 这4个进程相关的命令,太好用!

当您在Linux系统中管理进程时&#xff0c;了解一些进程监控命令是非常重要的。这些命令可以帮助您了解当前正在运行的进程以及它们的状态&#xff0c;从而更好地管理系统资源。下面是一些常用的Linux进程监控命令及其示例&#xff1a; 1、ps命令 ps命令可以列出当前正在运行的…

验证码登录开发----手机验证码登录

手机验证码登录 需求分析 为了方便用户登录&#xff0c;移动端通常都会提供通过手机验证码登录的功能 手机验证码登录的优点&#xff1a; 方便快捷、无需注册&#xff0c;直接登录使用短信验证码作为登录凭证&#xff0c;无需记忆密码安全 登录流程&#xff1a; 输入手机…

06-文章搜索页面

文章搜索页面 6-1&#xff1a;开篇 再上一章中&#xff0c;我们完成了 热搜首页 的开发&#xff0c;虽然经历了 ”千辛万苦“ &#xff0c;但是对大家来说&#xff0c;应该也是收获满满。 那么在这一章节&#xff0c;我们将会进入新的篇章&#xff0c;来到 文章搜索 页面的开…

【C++】深度剖析string类的底层结构及其模拟实现

文章目录 前言1. string的结构2. 构造、析构2.1 无参构造2.2 带参构造2.3 问题发现及修改c_stroperator []析构 2.4 合二为一 ——全缺省 3. 拷贝构造3.1 浅拷贝的默认拷贝构造3.2 深拷贝拷贝构造的实现 4. 赋值重载4.1 浅拷贝的默认赋值重载4.2 深拷贝赋值重载的实现 5. strin…

ES6 中的类(class)

前言 ES6 引入的 class 关键字具有定义类的能力。类是 ECMAScript 中新的基础性语法糖。虽然 ES6 表面上看起来可以支持正式的面向对象编程&#xff0c;但实际上它背后使用的依旧是原型和构造函数的概念。&#xff08;笔记内容参考《JavaScript 高级程序设计&#xff08;第 4 …

TTL反相器、OC门、TS门、推挽输出、开漏输出

TTL反相器 这是一个TTL反相器&#xff0c;这是经过了很多工程师多种设计最终沉淀出来的电路&#xff0c;这个电路是比较成熟的。我们只需要对这个电路进行解析即可&#xff0c;不需要再去研究当初是如何设计出来的。 学过CMOS应该知道&#xff0c;右侧的输出级其实也是个推挽输…

为什么程序实际可用内存会远超物理内存?

背景介绍 不知道在你刚接触计算机的时候&#xff0c;有没有这么一个疑问&#xff1a;“为什么我的机器上只有两个G 的物理内存&#xff0c;但我却可以使用比这大得多的内存&#xff0c;比如 256T&#xff1f;”反正我当时还是挺疑惑的&#xff0c;不过现在我可以来告诉你这个答…

如何将销售效果最大化:从人工智能聊天机器人到即时聊天

聊天机器人的崛起 从几年前开始&#xff0c;客户支持是聊天机器人使用的第一个爆发点。B2C引领潮流&#xff0c;B2B紧随其后。市场营销和销售最近也开始加入&#xff0c;让聊天机器人承担起迎接和引导网站游客的任务。现在&#xff0c;人工智能已经进入聊天&#xff0c;可以说…

机器学习 第一周

目录 1. 什么是机器学习(课本给出的部分定义) 我理解的机器学习: