自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 SpringBoot工程配置连接两个rabbitMQ服务器

在我们的日常工作中,大部分情况下,我们的服务一般只需要连接某一个存放消息的rabbitMQ服务器。但是,现在多用微服务和分布式的开发部署模式,一个服务连接多个rabbitMQ服务器的需求也难以避免。最近刚好遇到,并实现,发出步骤,避免大家走弯路。首先是yml或者propertes文件中的配置信息:spring.rabbitmq.first.host = XXXXspring.rabbitmq.first.port = XXXXspring.rabbitmq.first.username = XXX

2021-07-21 16:36:30 2311 3

原创 mybatisPlus配置双数据源

今天遇到了一个工作场景,在同一个工程中需要操作两个不同的数据库,之前并没有处理过类似场景,所以第一时间有点蒙,后来简单查阅了一些资料后,摸索完成,如下:# master为默认的数据源spring.datasource.dynamic.datasource.master.username = rootspring.datasource.dynamic.datasource.master.password = [email protected]

2021-07-21 16:09:22 1428

原创 Date时间转成“YYYY-MM-DD-HH-MM-SS”格式的字符串

public final class DateUtils {public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";public static String formatDateYyyyMMddHHmmss(Date date) { SimpleDateFormat dateFormat = new SimpleDateFormat(DateUtils.YYYY_MM_DD_HH_MM_SS);

2021-07-20 16:03:52 557

原创 java中的枚举转成List集合

某一个枚举类转集合是我们工作中时常用到的场景,今天恰好用到,写了一个,贴出来。避免以后重复造轮子。public static List toList() { List list = Lists.newArrayList(); for (SuperviseUnitEnum superviseUnitEnum : SuperviseUnitEnum.values()) { Map<String, Object> map = new HashM

2021-07-20 15:56:35 3073

原创 Cacheable、CacheEvict、Caching使用示例

SpringBoot项目整合cache后,处理缓存非常方便,可以直接使用注解的方式快捷的新增,删除缓存。最近使用到三个相关的注解,感觉很方便,用法分享给大家:1,@Cacheable@Cacheable添加缓存,方法相同参数请求时会直接读取缓存中的数据@Cacheable(value = CacheValueConsts.CONFIG_NOTIFICATION_PAGE, key = "#paramPage") public List<ConfigNotificationEntity&g

2021-04-25 17:45:18 688

原创 非常实用的Java中excel导出

Java中导出多sheet页的excel表格。废话不多说,直接上代码: response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); StringBuffer fileNameBuffer = new StringBuffer(); fileNameBuffer.append("导出表名后面加时间"+ DateUtil.f

2021-04-21 14:26:26 327

原创 java中如何使用http工具类请求已有URL路径,并获取response结果

使用http工具类访问已有URL路径的方式有很多种。下面做一下简单介绍:1,使用HttpUtil工具 String apiUrl = "https://api.jianzhugang.com/v1/pub/"; Boolean flag = true ; List<GroupInfo> groupInfoList = new ArrayList<>(); Map<String, Object> map = new Has

2021-04-20 19:01:50 1009

原创 Mybatis实现不存在即插入,存在即更新

在开发的过程中,常常会遇到“不存在即插入,存在即更新”的需求,虽然分成两步也可以完成上述功能,但是有一种简单方法可以一次性完成。1,首先,在表结构中将判断字段创建唯一索引,脚本如下:ALTER TABLE tableName ADD UNIQUE (column);2,在mapper.xml文件中手动编写sql,模板如下:注意,foreach结束标签后的字段为更新字段,因此这些字段列中不包括作为是否存在判断条件的唯一索引列。...

2021-04-20 18:40:55 7110 3

原创 Redis相关问题整理

1,概述Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另外,Redis 也经常用来做分布式锁

2021-03-10 10:11:04 90

原创 Spring部分问题整理

1,Spring的特性:依赖注入(dependency injection,DI)和面向切面编程(aspect-oriented programming,AOP)。2,Spring框架的核心:IoC容器和AOP模块。通过IoC容器管理POJO对象以及他们之间的耦合关系;通过AOP以动态非侵入的方式增强服务。IoC让相互协作的组件保持松散的耦合,而AOP编程允许你把遍布于应用各层的功能分离出来形成可重用的功能组件。4,什么是Spring IOC 容器?控制反转即IoC (Inversion of C

2021-03-09 11:04:25 80 1

原创 MyBatis面试题

1.ORM是什么ORM(Object Relational Mapping),对象关系映射,是一种为了解决关系型数据库数据与简单Java对象(POJO)的映射关系的技术。2,为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取.而Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。3,MyBatis如何

2021-03-09 09:16:00 89 1

原创 消息队列相关面试题整理

1,什么是消息队列我们可以把消息队列看作是一个存放消息的容器,当我们需要使用消息的时候,直接从容器中取出消息供自己使用即可。消息队列是分布式系统中重要的组件之一。使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。我们知道队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的。2,为什么要用消息队列通过异步处理提高系统性能(减少响应所需时间)。削峰/限流.降低系统耦合性。3.削峰/限流先将短时间高并发产生的事务消息存储在消息队列中,然后后端服务再慢

2021-03-08 17:11:50 643

原创 MySQL相关概念解析

1,数据库表结构设计的三大范式:第一范式:每个列都不可以再拆分。第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。2,索引索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。更通俗的说,索引就相当于目录。为了方便查找书中的内容

2021-03-08 10:40:27 85 2

原创 MySQL面试题整理

1,数据库表结构设计的三大范式:第一范式:每个列都不可以再拆分。第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。2,索引索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。更通俗的说,索引就相当于目录。为了方便查找书中的内容

2021-03-07 22:31:57 91 2

原创 SpringBoot面试题整理

1.什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。2.Spring Boot 的优点容易上手,提升开发效率,为 Spring 开发提供一个更快、更广泛的入门体验。开箱即用,远离繁琐的配置。提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等。没有代码生成,也不需要

2021-03-07 15:57:51 389 5

原创 操作系统简单知识点汇总

一,什么是操作系统1.操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。2.操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。3.操作系统存在屏蔽了硬件层的复杂性。 操作系统就像是硬件使用的负责人,统筹着各种相关事项。4.操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。 内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。二,系统调用

2021-03-05 17:34:18 189

原创 64个计算机网络相关概念解析

1.结点 (node) :网络中的结点可以是计算机,集线器,交换机或路由器等。2.链路(link ) : 从一个结点到另一个结点的一段物理线路。中间没有任何其他交点。3.主机(host) :连接在因特网上的计算机。4.ISP(Internet Service Provider) :因特网服务提供者(提供商)。5.IXP(Internet eXchange Point) : 互联网交换点 IXP 的主要作用就是允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。6.RFC(Reque

2021-03-05 16:34:37 348

原创 TCP和UDP

定义1.传输控制协议 TCP(Transmission Control Protocol)–提供面向连接的,可靠的数据传输服务。2.用户数据协议 UDP(User Datagram Protocol)–提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。三次握手1.流程:客户端发送带有 SYN 标志的数据包.服务端发送带有 SYN/ACK 标志的数据包客户端发送带有带有 ACK 标志的数据包2,原因:概括而言就是为了确认双方的发送和接收功能都正常第一次握手:客户端什么都不能确

2021-03-05 16:18:59 145

原创 Java内存区域相关概念解析

数据区域1.线程私有的数据区域:程序计数器, 虚拟机栈, 本地方法栈2,线程共享的数据区域:堆,方法区,直接内存程序计数器1.程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。2,另外,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”

2021-03-04 17:21:56 113 6

原创 并发与线程相关问题

进程1.进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。2.在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。线程1.线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生

2021-03-04 12:03:28 449 1

原创 一文尽收Java中集合相关知识(包括list,set,map所有子类)

1.List,Set,Map 三者的区别List(): 存储的元素是有序的、可重复的。Set(): 存储的元素是无序的、不可重复的。Map(): 使用键值对(kye-value)存储,Key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。2.List类型的集合Arraylist: Object[]数组Vector:Object[]数组LinkedList: 双向链表(JDK1.6 之前为循环链表,JDK1.7 取消了循环)3.Set类型的集合HashSet(

2021-03-03 17:59:41 157 1

原创 一文读懂Arraylist , Vector和LinkedList

一.ArrayList1.ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。2.ArrayList继承于 AbstractList ,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口。3.RandomAccess 是一个标志接口,表明实现这个这个

2021-03-03 16:36:32 104 3

原创 Java基本概念及易混淆知识点整理(二)

1.BigDecimal浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 equals 来判断.为避免数据精度丢失,使用 BigDecimal 来定义浮点数的值,再进行浮点数的运算操作.定义为BigDecimal 类型的数值a和数值b比较:a.compareTo(b) : 返回 -1 表示 a 小于 b,0 表示 a 等于 b , 1表示 a 大于 b。2.finalfinal修饰的类不能被继承,final类中的所有成员方法都会被隐式的指定为final方法;final修饰的

2021-03-03 15:48:22 262

原创 Java基本概念及易混淆知识点整理(一)

1.JVM(Java Virtual Machine)Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。2.JDK ( Java Development Kit )它是功能齐全的 Java SDK。它拥有 JRE 所拥有的一切,还有编译器(javac)和工具(如 javadoc 和

2021-03-02 16:25:05 133 1

原创 docker 简单常用命令整理

docker 简单常用命令整理1.docker images查看docker镜像2.docker images -a列出本地所有的镜像。(包括某些镜像创建时产生的依赖镜像也会展示)3.docker images -p只显示镜像ID4.docker rmi “aaa” 删除镜像,(“aaa”可以为镜像ID 或者镜像名称)5.docker ps列出当前所有正在运行的容器6.docker ps -a列出所有的容器,包括未运行的容器7.docker ps -q只显示容器ID8.docker ps -

2021-03-01 21:25:46 265 1

原创 SpringBoot常用注解整理

SpringBoot常用注解整理1.@SpringBootApplication我们可以把 @SpringBootApplication看作是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合。2.@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制3.@ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该

2021-02-28 20:32:53 216 1

原创 String,StringBuffer 和 StringBuilder 的区别

关于String,StringBuffer 和 StringBuilder 的区别StringString类中所有字符串都是常量,数据是无法更改.由于string对象的不可变,所以可以共享。在开发过程中用String存储字符串,并对字符串内容修改时,实际上是重新new了一个新的String字符串。StringBufferStringBuffer可以存储和操作字符串,即包含多个字符的字符串数据。因此,对StringBuffer类型的字符串内容修改时,是修改了原有字符串,而非new一个新的字符串。St

2021-02-28 14:26:17 72 3

原创 docker ps 和 docker ps -a的区别

docker ps 和 docker ps -a的区别docker psdocker ps命令用来展示所有运行中的容器docker ps -adocker ps -a命令是用来展示所有所有的容器,包括未运行的容器

2021-02-28 13:51:55 6919 1

原创 实体类为一对多对多时,如何写submit方法

工作中常常会碰到表关系为一对多对多的情况,看起来略微有些复杂,但是只要思路清晰,还是可以很顺利的理清关系,敲出代码的,以下面我的工作代码为例: @PostMapping("/submit") @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入operationRent") public ...

2019-11-29 10:16:22 394

原创 超实用的Navicat 常用快捷键整理

1.打开一个新的查询窗口: Ctrl + Q2.关闭当前窗口:Ctrl + W3.运行当前窗口的SQL语句:Ctrl + R4.运行选中的SQL语句:Ctrl + Shift + R5.注释选中SQL语句:Ctrl + /6.取消注释SQL:Ctrl + Shift + /7.选中当前行SQL:三击鼠标8.复制一行内容到下一行:Ctrl + D9.删除当前行:Ctrl + L10...

2019-11-29 10:02:51 1451 1

原创 造成索引失效的情况列举

某些情况下,查询条件中带有索引列,但是用explain执行计划分析时,却发现key值为null;下面的几种大致场景可能引起这种情况,列举出来,希望大家不要踩坑.表示广义或者表示否定的查询条件例如<>、NOT、in、not exists 因为这类查询条件无法精确定位,故而执行计划会选择全表扫描;前置通配符即like关键字的使用 如 where a like ‘%b’,这样也会...

2019-11-21 17:23:56 467

原创 数据库中索引的分类

一,索引索引根据其与数据的物理位置关系可以分为:聚集索引和非聚集索引两大类.聚集索引会对数据进行物理排序,非聚集索引则不会对数据进行物理排序.根据其列数又可以分为:单列索引和组合索引.单列索引的一个索引只包含单个列,一个表可以存在多个单列索引;组合索引,即一个索引包含多个列;值得一提的是主键本身就是索引————————————————版权声明:本文为CSDN博主「土豆空心粉」的原创文...

2019-11-21 14:55:48 800

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除