自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Thinkingcao的专栏

CSDN明星博主、博客专家—专注架构、Java、SpringBoot、SpringCloud、分布式等领域...

原创 SpringCloud Alibaba微服务架构教程 | :专栏汇总篇(持续更新中.............)

一、Spring Cloud Alibaba专题目录 Spring Cloud Alibaba与Spring Boot、Spring Cloud版本对应关系 Spring Cloud Alibaba教程(一):使用Nacos实现服务注册与发现 Spring Cloud Alibaba教...

2020-11-04 14:53:47 235 8

原创 JDK1.8新特性Stream流式操作

一. 前言 随着Java的发展,越来越多的企业开始使用JDK1.8 版本。JDK1.8 是自 JDK1.5之后最重要的版本,这个版本包含语言、编译器、库、工具、JVM等方面的十多个新特性。本次文章将着重学习Stream。 Stream 是JDK1.8 中处理集合的关键抽象概念,Lambda 和...

2020-09-18 14:59:19 5435 5

原创 Spring Cloud Alibaba与Spring Boot、Spring Cloud版本对应关系

一、前言 在搭建SpringCloud项目环境架构的时候,Springboot版本与SpringCloud版本对应关系很重要,如果版本不对应,常见的会遇见项目启动不起来,怪异的会是项目出现一些诡异的问题。 Release train Spring Boot compatibility Sp...

2020-04-21 10:55:00 3629 0

原创 深入理解分布式、微服务中CAP定律和BASE理论

一、背景 随着互联网的蔓延,各种传统项目(单体应用)已经不能够满足当前各种复杂的场景需求,都逐渐向分布式服务、微服务做转换,如今分布式、微服务已经普遍存在,大型网站几乎都是分布式、微服务架构的,分布式和微服务架构就显得尤为重要了。分布式和微服务系统的最大难点,就是各个节点的状态如何保持同步,这也是...

2020-04-07 16:45:00 1039 0

原创 Spring Cloud 系列教程 | 文章汇总:专栏汇总篇(持续更新中.............)

SpringCloud从入门到精通系列教程,持续更新中......................

2020-02-21 17:43:38 692 0

原创 Spring Boot2.x系列教程 | 文章汇总:专栏汇总篇(持续更新中.............)

Spring Boot使用注解控制Api接口幂等性之前后端分离架构设计:https://blog.csdn.net/Thinkingcao/article/details/103578562

2019-12-30 15:50:33 1118 2

原创 Eureka源码分析【一】 之Client和Server环境搭建

一、背景 在之前对Spring Cloud微服务系列组件进行了一个系统的学习,并且在前面的一些微服务组件学习过程中,总结了一些学习心得以及对于在学习这些微服务组件后的一些个人理解;恰好最近公司有个规模较大的项目,需要考虑到上微服务架构,所以我就主动申请了挑战一下这个新技术。 二、面对技术选型的挑战...

2020-11-27 17:58:12 12 0

原创 一文教你如何透彻理解Java异常处理

一、JAVA 异常类型结构分类 在Java中Throwable是所有异常类型的基类,并且Throwable异常下一层分为两个分支,分别为Error 和 Exception,Error和 Exception都继承自基类Throwable。 其关系结构图如下: 二、Error 和 Exeption区...

2020-11-25 17:13:22 26 0

原创 Hutool,一个贼好用的 Java 工具类库,Java开发必备利器

工欲善其事必先利其器! 今天给大家介绍一款超级强力的Java工具类库Hutool 。 一、简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 Hutool中的工具方法来自于每...

2020-11-24 14:55:29 41 2

原创 SpringBoot 系列教程(一百零五):SpringBoot调用Minio API时多级目录如何操作

背景 在使用minio做分布式系统文件存储时,有几个术语概念必须要理清楚,因为在minio存储目录是多级目录时,难以区分。 参数 类型 描述 bucketName String 存储桶名称 objectName String 存储桶里的对象名称 一、由来 假设现在minio...

2020-11-20 17:16:11 67 0

原创 Linux下校对服务器时间同网络时间一致

一、背景 默认安装完CentOS系统后,可能存在Linux服务器的时间与我们所处的网络时间不一致,这时候需要对linux服务器时间进行校对,同网络时间一致。 二、CentOS系统校对 1. 安装CentOS系统NTP校时包 yum install ntp 2. 校对命令 ntpdate cn.p...

2020-11-20 14:15:00 27 0

原创 SpringBoot 系列教程(一百零四):SpringBoot 整合 MinIo 文件服务

在日常开发中,图片上传、文件上传功能都会涉及到,可能在`SpringBoot`框架占领`Java`开发的主要市场后大家在处理文件上传时大家听得最多的分布式文件服务是`FastDFS`和阿里云的`OSS`,虽然`OSS`挺好用,奈何`OSS`是收费的,太贵.......,而`FastDFS`搭建配置...

2020-11-19 14:23:58 129 0

翻译 Docke入门教程(一):Docker入门

一、虚拟机与容器化技术 虚拟机可以在一个操作系统里面运行另一种操作系统。对于底层系统来说,虚拟机就是一个普通文件。虚拟机占用资源多,冗余步骤多,启动慢。 为了解决虚拟机存在的缺点,Linux发展出了虚拟化技术,Linux容器。Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。容器不需要...

2020-11-18 17:25:43 52 0

原创 SpringCloud Alibaba微服务架构(十四)- Nacos集群部署原理解析

CPA即一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP三个要素不可能全部实现,最多实现两个。一般的实际都是基于AP和CP。 而Nacos支持CP/AP两个模式和混合模式,可以进行切换,默认为AP。

2020-11-18 16:25:13 69 1

原创 SpringBoot 系列教程(一百零三):SpringBoot整合 Mybatis 多数据源配置

关于多数据源,得根据不同的项目场景需求才会涉及到,众所周知,国内程序员使用JPA并不过,相对来说说使用Mybatis更多一些,所以这篇文章和大家介绍下关于Mybatis多数据源的配置,另外多说一句,不是所有的需求场景都需要使用多数据源,如果复杂的可直接使用分布式数据库中间件(如:Mycat、Sha...

2020-11-16 13:59:03 98 0

原创 SpringBoot集成Mybatis多数据源: Invalid bound statement (not found): com.xx.mapper1.getAllOrder 坑点

背景 在SpringBoot 2.3.1.RELEASE整合Mybatis 2.1.3多数据源配置的过程中,遇到过一个坑点,花了我一下午时间,最后解决掉了,这里总结一下,防止大家在SpringBoot 整合Mybatis多数据源的过程中遇到这个问题,可少趟坑。 下面这行异常信息就是上面提到的坑点,...

2020-11-16 11:42:32 40 0

原创 SpringBoot 系列教程(一百零二):SpringBoot整合PageHelper插件实现分页查询

在以前项目开发过程中,查询接口是大量存在的,当调用查询接口将数据展示到前端页面时(H5、PC、移动端),难免数据量过大需要对数据请求进行分页返回数据,分页查询的形式有多种多样,说不上很简单,大部分都很复杂,这里就举例在MySQL中传统分页怎么做的: select oid, number, pid,...

2020-11-12 17:40:56 63 0

转载 Java序列化和反序列化为什么要实现Serializable接口

一、前言 最近公司的在做服务化, 需要把所有model包里的类都实现Serializable接口, 同时还要显示指定serialVersionUID的值. 听到这个需求, 我脑海里就突然出现了好几个问题, 比如说: (1) 序列化和反序列化是什么? (2) 实现序列化和反序列化为什么要实现Seri...

2020-11-10 10:20:29 57 0

原创 JAVA WEB开发中REST接口统一返回数据工具类封装

在JAVA WEB项目开发过程中,统一的API数据返回很常见,这里总结一下Rest接口里统一的API数据返回格式和Rpc接口里统一的API数据返回格式。

2020-11-09 16:55:16 135 0

原创 SpringBoot 系列教程(九十九):SpringBoot整合阿里云OSS实现文件上传,下载,删除功能

一、前言 在以前使用Spring+SpringMVC+Mybatis框架开发Web项目的时候,都是将项目打包生成一个War包,然后将War包丢到Tomcat服务器的webapp目录下,启动后将会解压改War包,创建一个war包名称的文件夹。而且项目中一些关于文件的上传都是存储到Tomcat下,按日...

2020-11-09 14:05:25 136 0

原创 SpringCloud Alibaba微服务架构(开章)- 初步认识Spring Cloud Alibaba

一. Spring Cloud Alibaba简介 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud A...

2020-11-04 11:23:22 136 0

转载 简述 Cookie、Token、JWT、Session之间的关系

背景 早期互联网只是用来访问查看,不需要关心谁在访问查看。HTTP是一种无状态的协议,每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,为了标示用户,就出现了Cookie,而Cookie、Token、JWT 都是用来标示用户的。 Cookie 如:iChochy用户发起访问,服务端为了进...

2020-11-04 10:57:09 39 0

原创 使用nacos-server-1.2.1版本客户端不断重复拉取服务端配置的问题

一. 项目环境 项目主依赖使用Spring Cloud,其次整合了Spring Cloud Alibaba生态圈中的部分依赖组件:nacos、seata ,项目的核心组件依赖版本兼容如下方,提供给大家参考: 组件 版本号 nacos.version 1.2.1 spring ...

2020-10-30 17:39:53 167 0

原创 白话讲解RPC调用和HTTP调用的区别

一、前言 很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive! 本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TC...

2020-10-29 15:03:24 125 0

原创 SpringCloud Alibaba微服务架构(十二)- 分布式事务解决框架之Seata概念入门篇

“微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。

2020-10-27 23:17:20 122 0

原创 SpringCloud Alibaba微服务架构(十三)- SpringCloud整合Seata1.2.0解决分布式事务

在当下微服务架构比较火热时,新一代微服务解决方案Spring Cloud Alibaba提供的开源分布式事务解决框架Seata无疑成为了我们在解决分布式事务时的首要之选,前面两篇文章分别介绍了常见的分布式解决方案和成熟的框架以及关于Seata概念的入门介绍

2020-10-27 20:37:31 133 0

原创 SpringCloud Alibaba微服务架构(十一)- 常见分布式事务解决方案及理论基础篇

在传统的单体应用架构中,例如经典的SSM,项目会采用分层架构模式:数据库访问层、业务逻辑层、控制层,从前端到后台所有的代码都是一个或者几个开发者去完成,该架构模式没有对我们业务逻辑代码实现拆分、也没有对数据源进行拆分,所有的代码都写入到同一个项目的不同module中。此时多个不同业务逻辑都是在同一...

2020-10-27 20:35:51 183 1

原创 Feign客户端异常IOException: Incomplete output stream解决方案

一. 前言 在开发SpringCloud项目架构的项目时,服务与服务之间的调用通过Feign客户端实现,在做一个从Feign客户端到service服务端的POST请求时,Feign客户端为服务消费者觉得,service服务端为服务提供者角色,提供者角色中service服务端Controller类中...

2020-10-19 15:19:45 143 0

原创 Mysql授权root账户允许远程连接访问

一. 前言 在Linux上安装完Mysql后,需要对root账户授权远程连接访问的权限,同时如果你创建了一个新的Mysql用户,同样也需要对该账户授权远程连接访问的权限;Mysql授权允许远程登录后,linux中安装的Mysql可以与Navicat for Mysql(可视化)等连接,在可视化软件...

2020-10-15 17:49:30 99 0

原创 Spring Cloud中Feign客户端调用服务时丢失Header参数的解决方案

前言 在SpringCloud微服务架构的项目中,服务之间的调用是通过Feign客户端实现。默认情况下在使用Feign客户端时,Feign 调用远程服务存在Header请求头参数丢失问题,例如一个订单服务Order和一个商品服务Product,调用关系为: 用户下单调用订单服务,订单库创建一笔订单...

2020-10-14 16:29:30 398 5

原创 Spring Cloud系列教程(十八):下一代网关服务Gateway-内置Filter(Finchley版本)

Spring Cloud Gateway 根据过滤器`Filter`的作用范围划分为`GatewayFilter `和 `GlobalFilter`,二者区别如下: - **GatewayFilter :** `GatewayFilter `称为内置过滤器,需要通过 `spring.cloud...

2020-10-12 17:23:17 37 0

原创 Spring Boot 系列教程(第一百篇):SpringBoot整合sa-token权限框架

sa-token是一个JavaWeb权限认证框架,强大、简单、好用。

2020-09-10 21:39:47 413 2

原创 关于Spring Cloud及Spring Boot版本命名规则,你必须要了解!

在使用SpringCloud及SpringBoot搭建项目框架之前,都需要去了解二者之间版本的兼容对应关系,关于SpringBoot和SpringCloud官方版本号的命名规则很是好奇,想要一探究竟,那么显而易见,SpringBoot的版本号是通过数字来命名的,SpringCloud则是通过希腊英...

2020-09-02 16:08:13 359 0

原创 Spring Boot 系列教程(一百零一):SpringBoot自定义Starter启动器

在使用SpringBoot框架时,SpringBoot 最强大的功能就是把我们常用的场景抽取封装成了一个个starter,将其称之为场景启动器。搭建项目时,通过引入SpringBoot为我提供的这些场景启动器,然后开发者再进行少量的配置就能快速的开发出一个Java Web应用。究其原理,完全归结于...

2020-08-25 21:56:39 361 0

原创 SpringBoot系列教程(七十):SpringBoot的Controller四种方法返回值类型

Spring、SpringMVC、SpringBoot三大主流框架已成为Java Web开发界的必要开发使用框架,被广大开发者所使用。 - `Spring`是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(springMvc)、业务层(I...

2020-08-21 17:43:22 504 0

原创 SpringBoot 集成Mybatis中@Mapper与@MapperScan注解的区别

在使用`SpringBoot`整合`Mybatis`持久层框架时,对于`Mybatis`生成的接口类,例如 `UserMapper`,这些接口类 `*Mapper`在这里充当了`Dao`层的角色,,在Service层编写业务代码的时候需要使用@autowired或@resource注解注入然后调用...

2020-08-20 15:33:47 646 0

原创 SpringBoot 系列教程(九十八):SpringBoot整合Thymeleaf3语法详解
原力计划

`Thymeleaf`是`Spring Boot`官方默认推荐使用的模版引擎,除此之外常见的还有`Freemarker`和`Jsp`,在开发市场上在使用`SpringBoot`框架时其前端数据展示的模板选型上使用最多的模板引擎是`Thymeleaf`,其次就是`Freemarker`了。 `Th...

2020-08-17 17:26:48 283 0

原创 SpringBoot 系列教程 | 第一百一篇:SpringBoot2.0开发微信小程序之订阅消息推送
原力计划

做小程序开发的时候,消息推送是一个比较常用的功能,基本表涉及到一些重要提醒的功能时,都会使用到微信小程序的模板消息推送,随着用户和开发者的信息推送诉求日益增长,微信官方下架了之前的`模板消息推送`功能,改为用户自助订阅消息推送,小程序开发者可自行接入,在用户主动订阅消息后可实现消息随时触达功能。

2020-08-07 15:56:59 432 0

原创 前端进阶资料—免费分享(持续更新)

一、Vue学习资料 1. 慕课网Vue Element+Node.js开发企业通用管理后台系统 https://pan.baidu.com/s/1vmgZsKjLhfSg5BSn_yZSjw 提取码: vve5 2. react+ts项目架构源码: https://e.coding.net/F...

2020-08-04 23:30:30 191 0

原创 vue路由传参的三种基本方式

方式一: 直接调用$router.push 实现携带参数的跳转  this.$router.push({     path: `/describe/${id}`,   }) 方案一,需要对应路由配置如下: {    path: '/describe/:id',    name...

2020-08-04 23:02:13 186 0

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