史上最详细Docker部署Mysql主从复制,带每一步骤图!!!
没有夸大标题哈,能够成功的,实测后发文😁本文主要讲怎么用Docker部署Mysql的主从复制,看起来很长,实际非常简单的,看一遍,立马就能懂的。直接CV也能搭建起来,莫慌。我们一起加油!!!封面地点:泰山日出一、拉取镜像docker pull mysql:5.7相关命令: 查看镜像:docker images二、启动镜像先启动mysql01容器:(即之后的主机)
实战:Spring Boot 程序如何做好 Web 层的测试
引言本文将讨论如何针对 Spring Boot 程序的 Web 层进行测试的,借助 MockMvc API 以及常见的测试库实现 Web 层方法的测试覆盖,以及如何定制 MockMvc。准备工作 Java 8 Maven 3 Spring Boot 2.x.x新建一个 Spring Boot 工程,并且保证项目有以下Maven 依赖:<dependency>
学习设计模式——适配器模式
介绍适配器模式(Adapter Design Pattern) 将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。比如说我们很多人的手机现在都没有了耳机孔,需要一个转接头来充当适配器,一端连接耳机,一端连接手机的充电口,通过转接就可以正常使用有线耳机了。适配器
Spring Boot实现多数据源整合Mybatis版
前言本篇博客只讲如何从零到壹地再Spring Boot项目中实现多数据源配置,不谈源码(后续上Spring Boot自动配置等源码)。本篇博客内容基于Spring Boot Version 2.5.1。背景一个项目中需要连接多个数据源,我们需要在 业务 层不同的接口访问不同的数据源,此时我们就需要整合项目适配多数据源,本篇博客由此展开。实现步骤1、配置文件中配置多个数据源参数在data
Java多线程与并发编程——Condition、Callable&Future
前言每天积累一点点,积跬步至千里。今天学习JUC包中的Condition、Callable&Future。Condition等待与唤醒 JUC提供了这么多的工具类,目的是让我们对于程序中多线程环境下,对线程的控制,Conditon对象,用来让指定的线程等待与唤醒,按照我们预期的顺序执行,大白话就是,我们完全掌控线程的执行顺序。注意: 它必须和ReentrantLock重入锁
深入浅出Java多线程(十二)之ThreadPool(上)
前言线程,程序执行流的最小执行单位,是行程中的实际运作单位,经常容易和进程这个概念混淆。那么,线程和进程究竟有什么区别呢?首先,进程是一个动态的过程,是一个活动的实体。简单来说,一个应用程序的运行就可以被看做是一个进程,而线程,是运行中的实际的任务执行者。可以说,进程中包含了多个可以同时运行的线程。ThreadPool线程池原理所谓线程池,通俗的理解就是有一个池子,里面存放着已经创建好
学习设计模式——装饰器模式
概述装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。它是作为现有的类的一个包装。若要扩展一个对象的功能,装饰器模式提供了比继承更有弹性的替代方案。组合优于继承。何时使用: 需要扩展一个类的功能,或给一个类增加附加责任。 需要动态的给一个对象增加功能,这些功能可以再动态地撤销。 需要增加一些基本功能的排列组合而产生的非常大
Spring中常见的设计模式—工厂模式
前言今天来和小伙伴们分享下设计模式中的工厂模式啦一、工厂模式我们都知道,设计模式有23种,按照功能和使用场景可以分为三大类: 创建型模式 结构型模式 行为型模式工厂设计模式(Factory Pattern)呢,就是一种很常见的设计模式,属于创建型模式的,主要作用就是来创建对象的~原理图先来看一个小栗子二、简单工厂模式(非23种)原理图例子的话,感觉也挺多的 比如各种品牌的电
多线程之线程池ThreadPoolExecutor
作用 并发编程的艺术 降低资源消耗 提高响应速度 提高线程的可管理性 码出高效java开发手册 利用线程池管理并复用线、控制最大并发数等 实现任务线程队列缓存策略和拒绝机制 实现某些与时间相关的功能,如定时执行,周期执行等 隔离线程环境。比如,交易服务和搜索服务在同一台服务器上,分别开启两个线程池,交易线
SpringBoot集成分布式对象存储(分布式文件)MinIO
一、什么是MinIO?一句话:MinIO是高性能、可扩展、云原生支持、操作简单、开源的分布式对象存储产品。你可以把它和FastDFS、HDFS作为类比,但它比其它都更简单,极简是MinIO的设计初衷之一,而且他的性能很好。当然也有很多商用的对象存储服务,如阿里的OSS、腾讯的COS,无需自己维护,但需要付费。自建对象存储还是香。官网上的一句话:在中国:阿里巴巴、腾讯、百度、中国联通、华
【SpringMVC 从 0 开始】SpringMVC RESTFul 实战案例——实现修改功能
一、回显功能做实际修改操作之前,需要有个回显功能,就是点编辑页后可以看到数据。1.修改操作超链接这里的请求地址跟删除的一样,需要带上 id,因为要回显这个 id 的数据。 <td> <a @click="deleteEmployee"&
设计模式之迭代器模式
迭代器模式的定义是通过提供一种方法顺序访问一个聚合对象中的各个元素,而又不必暴露该聚合对象中的内部表示。迭代器模式是针对聚合对象(数组、集合、链表)的“访问”而来。通过定义不同的遍历策略来遍历聚合对象。应用场景 如果希望提供访问一个聚合对象的内容,但又不想暴露它的内部表示的时候可使用迭代器模式 如果希望有多种遍历方式可以访问聚合对象。 如果希望为遍历不同的聚合对象提供一个统
Java核心基础知识——Java 中的嵌套类
在 Java 中,可以在另一个类中定义一个类,这样的类称为嵌套类。它们使您能够对仅在一个地方使用的类进行逻辑分组,从而增加封装的使用,并创建更具可读性和可维护性的代码。 嵌套类的范围受其封闭类的范围限制。 嵌套类可以访问嵌套类的成员,包括私有成员。然而,反之则不然,即封闭类不能访问嵌套类的成员。嵌套类也是其封闭类的成员。作为其封闭类的成员,嵌套类可以声明为priva
【Redis 系列】Redis 学习——数据库的演进及 Nosql 的初步认知
为什么要用 Nosql ?咱们一起来看看数据库的发展过程1、单机的 MYSQL 时代应用访问数据库是 应用 – DAL 数据库访问层 – DB 数据库在单机的 MYSQL 时代,数据都不会太大,而且网页也是静态网页,一般网站的访问量也小,因此单数据库就完全够用了上面这种网站,瓶颈就会很明显: 数据量变得大了,一个机器放不下如何处理 数据的索引 (B+ Tree),一个机器的内存
使用Redis来做缓存,你应该知道的!
一、缓存一些知识1.1、缓存击穿、缓存穿透、缓存雪崩是什么? 缓存击穿用户请求的某个key在DB或者缓存中存在,但是可能正好在当这个key在缓存中到达了失效时间而过期,而此时大量访问该数据请求过来,相当于在缓存中凿开一个缺口,一下子全部打在DB上,造成DB压力压垮DB。 缓存穿透用户通过请求一些缓存和DB中压根都不存在的数据,致使每次请求都会绕过缓存,请求DB,给DB带来压力
喜闻乐见:之前那个被字节跳动反复鞭尸面试了九次的人后来如何了?
前言不知道大家有没有关注,前段时间,有个在字节跳动面试了九次的“二本渣渣”火了。这位二本的兄dei 在短短几个月内狂投638份简历,都是挑大厂岗位投的,参加面试的次数也很多,前前后后仅字节跳动就面了九次,有人问他,他就说:没有撤退可言。刚听朋友说到他的故事的时候,我是很震惊的,于是进行了深入的了解,以下是他写在自己的博客上面的分享。一、狂投638份简历的前因我就是一个普通二本的小渣渣,
java并发编程系列——死锁的解决
接下来我会以一个经典的转帐问题,跟大家一起聊聊死锁,以及如何解决这个问题。假如客户 A 需要给客户 B 转账,客户 A 的账户减少 100 元,客户 B 的账户增加 100 元。我们转化为代码描述:有一个账户类 Account,账户类有一个转账方法 transfer() 方法,该方法接收两个参数,转入账户和转账金额。示例:1 public class Accoun
MySql表的基础命令及数据操作命令
一、MySQL关于表基础命令1.1 表的创建语法: create table if not exists 表名 ( 字段名 数据类型(null | not null,default | auto_increment,primary key,comment,varchar,), 字段名 数据类型 ... ) engine=存储引擎 charset=字符编码 数据类型
任职要求中的熟系Redis,你真的熟悉吗?
一、NoSQL1.1、NoSQL引言 NoSQL( Not Only SQL ),意即不仅仅是SQL, 泛指非关系型的数据库。Nosql这个技术门类,早期就有人提出,发展至2009年趋势越发高涨。1.2、为什么是NoSQL 随着互联网网站的兴起,传统的关系数据库在应付动态网站,特别是超大规模和高
你还不懂【JVM垃圾回收及收集器】么?
Serial收集器 这个收集器是一个单线程工作的收集器,但它的“ 单线 程”的意义并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作, 更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。ParNew收集器 ParNew收集器实质上是Serial收集器的多线程并行版本==收集器中的并发与并行== 并行(Parallel):并行述