自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (1)
  • 收藏
  • 关注

转载 Spring Validation的使用

还是上面的例子,比如保存User的时候,UserId是可空的,但是更新User的时候,UserId的值必须>=10000000000000000L;上面提到的将参数一个个平铺到方法参数中,然后在每个参数前面声明约束注解的校验方式,就是方法级别的参数校验。但是实际场景中,有可能某个字段也是一个对象,这种情况先,可以使用嵌套校验。实际上,不管是requestBody参数校验还是方法级别的校验,最终都是调用Hibernate Validator执行校验,Spring Validation只是做了一层封装。

2024-03-08 17:49:44 67

原创 自研cloud框架专题–security模块(六)

设计中.主要基于RA-TOKEN设计。

2024-03-08 17:26:46 93

原创 自研cloud框架专题–web模块(三)

- 自动集成spring-boot-web模块- swagger支持并提供swagger快速配置- knife增强swagger支持- 全局请求参数校验(Validation)支持- 字段脱敏支持- 默认jackson序列化- xss支持- cors支持- 访问日志支持- 全局异常处理,统一返回结果- 系统关键及常用信息启动显示

2024-03-08 17:24:00 1053

原创 自研cloud框架专题–通用cache模块(五)

通过依赖对应的cache实现,可自动装载对应配置- 扩展依赖原spring-cache核心能力,保留其扩展能力- 配置原spring配置同样生效,如不使用cache-plus框架能力,原生配置不受影响使用cache-plus相关功能,仅更换配置前缀即可## 2.对于spring-cache增强- 支持多cache同时使用- 支持Redisson实现的CacheManager自动注入- 支持具体缓存失效时间配置,全局配置及注解均支持- 支持二级缓存- 支持强一致事务缓存

2024-03-07 16:20:23 780

原创 自研cloud框架专题–service模块(二)

1. 自动依赖mybatis-plus模块,拥有cloud下mybatis-plus模块所有能力.具体见:https://github.com/2892824942/ty-cloud/blob/main/ty-framework/ty-framework-mybatis-plus2. 提供实体对象缓存能力,简化简单缓存业务代码开发3. DODTO 通过Mapstruct转换,增强DO-->DTO转换,支持简单关联字段半自动映射,支持审计字段自动映射

2024-03-06 18:05:02 917

原创 自研cloud框架专题–mybatis-puls模块(一)

1. 自动集成Mybatis-plus,提供统一的ORM层代码格式,同时支持Mybatis-plus-join(可选)2. 提供父类Mapper,简化开发.支持连表查询,分页查询,简化非空判断,查询结果Map3. 基于Mybatis TypeHandler,提供数据加密,json格式解析,连接符解析等能力

2024-03-06 17:27:48 569

原创 自研cloud框架专题

自己开发的cloud框架,可作为企业java web开发底层依赖,提供多个模块能力,降低搭建环境难度,增强模块能力.自研cloud框架专题–mybatis-puls模块(一)自研cloud框架专题–security模块(五)自研cloud框架专题–service模块(二)自研cloud框架专题–cache模块(四)自研cloud框架专题–lock模块(三)自研cloud框架专题–web模块(三)自研cloud框架专题–框架介绍(零)

2024-03-06 17:16:52 457

原创 Spring启动生命周期

Spring Boot 应用程序的生命周期包含几个阶段,每个阶段都有特定的事件和钩子,允许开发者在应用程序的不同生命周期阶段插入自定义逻辑。Spring Boot 生命周期详解。

2024-02-22 19:53:44 395 1

原创 自研cloud框架专题-通用lock框架(四)

集成分布式锁能力,starter依赖即可使用分布式锁能力抽象分布式锁的集成,方便快速切换分布式锁方案(目前支持jvm,redis,zookeeper)锁的调用基于spring lockRegistry以及java lock顶层接口,调用统一,支持多厂商实现(可同时使用),支持切换,支持扩展,支持多种锁类型,可重入锁,读锁,写锁等提供注解方式支持,并提供更强大方便的能力lock能力增强,支持本地预锁,事务感知,死锁检测提供方法级定制以及全局定制能力

2024-02-20 17:07:03 712

原创 [框架系列]-[通用lock框架]集成及具体配置使用

lock框架是解决java lock领域的一种通用框架,基于spring boot框架starter集成机制,可以通过简单的依赖配置,快速实现集成.支持代码及注解方式,支持多种厂商实现及多种类型的锁任意切换.比如本地锁,zookeeper分布式锁,redis自实现锁,redisson分布式锁,etcd等锁的实现.多类型包括,重入锁,读写锁,自旋锁等

2024-01-23 11:09:54 846

原创 netty专题-4.1.x版本-专题目录(一)

最近着手学习netty部分的内容,这里先占个位置。后续整理学习的内容到这里

2021-08-16 14:10:05 185

原创 扣款引发的思考

扣款这个场景在日常开发场景不是很常见,但是在面试中以该场景发散的面试题却不计其数。主要是扣款场景比较敏感,对于安全性要求很高,就像老是面试问你个秒杀(对性能要求搞)一样。最近就遇到了一个扣款的场景,遇到了一些问题,有些思考记录下来。 因为系统的保密性,这里用自己写的代码描述问题。扣款业务数据:这里模拟扣款动作核心的两个表,账户和资金流水。当业务需要扣款时,扣除账户余额,同时更新资金流水。一:环境搭建主要使用:Mysql,Springboot,myBatis1.数据库资金账户表CREATE.

2021-06-03 18:11:56 432 2

原创 Spring Cloud Alibaba专题–2.2.5.RELEASE–深入探究Dubbo作为RPC的特点(十二)

本文中的demo项目搭建参考Spring Cloud Alibaba专题–2.2.5.RELEASE–Dubbo作为RPC调用框架的使用(十一)-三:基础Spring Boot环境搭建一:点对点直连应用场景:有的时候,为了测试本地的代码是否正确,需要直连本地环境来测试对应的代码1.启动多台服务提供者勾选允许多台同时启动,运行两个实例已经注册进nacos2.代码修改 @DubboReference(url = "172.16.27.230:20880",version = "2.0.0

2021-04-23 18:58:48 7886

原创 Spring Cloud Alibaba专题--2.2.5.RELEASE--Dubbo作为RPC调用框架的使用(十一)

一:Dubbo介绍1.历史简介2011年10月27日,阿里巴巴开源了自己的SOA服务化治理方案的核心框架Dubbo,服务治理和SOA的设计理念开始逐渐在国内软件行业中落地,并被广泛应用2012年10月23日Dubbo2.5.3发布后,在Dubbo开源将满一周年之际,阿里基本停止了对Dubbo的主要升级。只在之后的2013年和2014年更新过2次对Dubbo2.4的维护版本,然后停止了所有维护工作。Dubbo对Srping的支持也停留在了Spring 2.5.6版本上在阿里停止维护和升级D

2021-04-22 16:22:50 7846

转载 Spring Cloud Alibaba专题–2.2.5.RELEASE–RPC介绍(十)

一:什么是RPC?RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。比如说,一个方法可能是这样定义的:Employee getEmployeeByName(String fullName)那么:首先,要解决通讯的问题,主要是通过在客户端和服务器之间建立TCP连接,远程过程调用的所有交换的数据都在这个连接里传输。连接可以是按需连接,调用结束后就断掉,也

2021-04-22 13:57:29 6439

原创 Spring Cloud Alibaba专题--2.2.5.RELEASE--Nacos作为注册中心的使用(八)

关于nacos服务端的使用可以参考Spring Cloud Alibaba专题–2.2.5.RELEASE–Nacos作为配置中心的使用(五),这里就不在赘述了一:Nacos服务的分级存储模型命名空间(namespace):命名空间属于Nacos顶层的结构,用于进行租户级别的隔离,我们最常用的就是不同环境比如测试环境,线上环境进行隔离。服务(Service):服务的概念就和我们平常的微服务一一对应,比如订单服务,物流服务等等。一个命名空间下可以有多个Service,不同的命名空间可以有相

2021-04-22 13:29:04 8195

转载 Spring Cloud Alibaba专题--2.2.5.RELEASE--注册中心介绍(七)

本文转自:架构设计之微服务注册中心选型1.数据模型:注册中心的核心数据是服务的名字和它对应的网络地址,当服务注册了多个实例时,我们需要对不健康的实例进行过滤或者针对实例的一些特征进行流量的分配,那么就需要在实例上存储一些例如健康状态、权重等属性。随着服务规模的扩大,渐渐的又需要在整个服务级别设定一些权限规则、以及对所有实例都生效的一些开关,于是在服务级别又会设立一些属性。再往后,我们又发现单个服务的实例又会有划分为多个子集的需求,例如一个服务是多机房部署的,那么可能需要对每个机房的实例做不同的配置,这样

2021-04-21 16:52:05 350

原创 Spring Cloud Alibaba专题--2.2.5.RELEASE--Nacos作为配置中心的使用(五)

一:Nacos服务端的使用1.安装包下载首先到nacos的官网下载nacos的服务端,由于,由于我使用的Spirng Cloud Alibaba的版本是2.2.5.RELEASE,根据上一篇中Spring Cloud Alibaba专题–2.2.5.RELEASE–Spring Cloud Alibaba介绍(三)–组件版本关系,应该下载1.4.1版本的nacos服务端2.启动Nacos服务端cd到nacos的bin目录下,启动命令(standalone代表着单机模式运行,非集群模式):sh st

2021-04-21 15:38:15 9687 3

原创 Spring Cloud Alibaba专题--2.2.5.RELEASE--配置中心选型(四)

目前市场上常用的配置中心有Spring Cloud Config、Apollo、disconfi及Nacos,每个中间件的能力相似,又存在部分偏差,我直接用的排除法Spring Cloud Config已经不维护了,所以第一个排除至于disconf很久都不维护了,如果用过的还好,我没用过。说实话,剩下的就是Nacos了,看看功能点:功能点Spring Cloud ConfigApolloNacos开源时间2014.92016.52018.6配置实时推送

2021-04-20 20:32:24 7628

原创 Spring Cloud Alibaba专题--2.2.5.RELEASE--Spring Cloud Alibaba介绍(三)

引子:上文,Spring Cloud Alibaba专题–服务层的架构演进(二)中说到,微服务的架构搭建因为门槛过高,尝试搭建微服务架构的过程像更像是从入门到放弃的劝退过程。就像初期的Spring一样。Spring虽然相比老一代strus2架构搭建简单了很多,但是其配置复杂度仍然让很多人诟病。针对这个问题,Spring官方推出了Spring boot。通过约定大于配置的规范,以及大量默认开箱即用的starter,使得Spring的配置极大的简化,那么微服务门槛高的问题是不是也能照葫芦画瓢呢?Spring

2021-04-20 18:17:50 9922

原创 Spring Cloud Alibaba专题--2.2.5.RELEASE--服务层的架构演进(二)

前言1.本专题使用的Spring Cloud Alibaba的版本为2.2.5.RELEASE,对应的Spring Cloud 版本为Hoxton.SR8,可能存在与其他版本不一致的配置或功能,如需自己动手测试注意版本数据层的扩展之前聊过关于数据中间件的微服务架构,使用的核心组件就是Sharding Sphere。事实上整个数据层的架构演变是基于业务数据驱动的,当业务数据量及访问量逐渐增大,我们不得不演进数据层的架构使得数据层能够抗住更多的并发量以及获得更快的性能。在架构演进的过程中,随着垂直横向拆分

2021-04-20 15:58:50 6791 1

原创 Spring Cloud Alibaba专题--2.2.5.RELEASE--专题目录结构(一)

Spring Cloud Alibaba专题–目录结构(一)Spring Cloud Alibaba专题–为什么使用Spring Cloud Alibaba(二)(TODO)Spring Cloud Alibaba专题–Spring Cloud Alibaba介绍(三)(TODO)Spring Cloud Alibaba专题-- 配置中心介绍(四)(TODO)Spring Cloud Alibaba专题-- Nacos作为配置中心的使用(五)(TODO)Spring Cloud Alibaba专.

2021-04-19 20:13:48 6879 2

原创 ShardingSphere应用专题–4.1.1版本–Sharding-Scaling实现弹性伸缩(十七)

先占个位置

2021-04-02 19:27:33 9640 8

原创 ShardingSphere应用专题–4.1.1版本–Sharding-Proxy的使用(十六)

先占个位置

2021-04-02 16:22:27 9361

原创 ShardingSphere应用专题–4.1.1版本–Sharding-UI的使用(十五)

前言1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方文档配置不同。事实上,源码中有非常详细的版本配置文档,本文也是参考4.1.1 tag的源码配置。3.ShardingSphere

2021-03-30 21:25:38 8401

原创 ShardingSphere应用专题--4.1.1版本--服务治理(十四)

前言1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方文档配置不同。事实上,源码中有非常详细的版本配置文档,本文也是参考4.1.1 tag的源码配置。3.ShardingSphere

2021-03-30 20:40:49 8753 11

原创 ShardingSphere应用专题--4.1.1版本--Sharding-JDBC 字段加密之自定义加密策略(十一)

前言1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方文档配置不同。事实上,源码中有非常详细的版本配置文档,本文也是参考4.1.1 tag的源码配置。3.ShardingSphere

2021-03-30 14:43:20 8725

原创 ShardingSphere应用专题--4.1.1版本--Sharding-JDBC 字段加密之已上线业务加密(十)

前言1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方文档配置不同。事实上,源码中有非常详细的版本配置文档,本文也是参考4.1.1 tag的源码配置。3.ShardingSphere

2021-03-30 14:42:24 8376 3

原创 ShardingSphere应用专题--4.1.1版本--Sharding-JDBC 字段加密之新业务加密(九)

前言:1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方文档配置不同。事实上,源码中有非常详细的版本配置文档,本文也是参考4.1.1 tag的源码配置。3.ShardingSpher

2021-03-30 14:38:42 8520 3

原创 ShardingSphere应用专题--4.1.1版本--Sharding-JDBC应用注意点(八)

前言:1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方文档配置不同。事实上,源码中有非常详细的版本配置文档,本文也是参考4.1.1 tag的源码配置。3.ShardingSpher

2021-03-29 17:23:45 11564 2

原创 ShardingSphere应用专题--4.1.1版本--Sharding-JDBC读写分离+分库分表(七)

前言:1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方文档配置不同。事实上,源码中有非常详细的版本配置文档,本文也是参考4.1.1 tag的源码配置。3.ShardingSpher

2021-03-29 15:12:30 7570

原创 ShardingSphere应用专题--4.1.1版本--Sharding-JDBC分库分表(六)

前言:1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方文档配置不同。事实上,源码中有非常详细的版本配置文档,本文也是参考4.1.1 tag的源码配置。3.ShardingSpher

2021-03-27 18:33:02 9771

原创 ShardingSphere应用专题--4.1.1版本--Sharding-JDBC读写分离(五)

前言:1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方文档配置不同。事实上,源码中有非常详细的版本配置文档,本文也是参考4.1.1 tag的源码配置。3.ShardingSpher

2021-03-25 21:10:23 8350 1

原创 ShardingSphere应用专题--4.1.1版本--Sharding-JDBC环境搭建(四)

1.环境搭建:2.数据库安装:3. 数据库sql:CREATE DATABASE IF NOT EXISTS mydb;DROP TABLE IF EXISTS `mydb`.`bill`;CREATE TABLE `mydb`.`bill` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `bill_name` varchar(255) NOT NULL DEFAULT '' COMMENT '账单名称',

2021-03-19 10:30:59 9499 3

转载 ShardingSphere应用专题--4.1.1版本--版本介绍及功能点汇总(三)

前言:ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。 它与NoSQL和

2021-03-18 21:38:02 8309 2

原创 ShardingSphere应用专题--常见数据库架构的演进(二)

开始阶段:阶段1这个时候项目伊始,怎么简单怎么来自然是使用单一的数据库架构。阶段2随着时间的推移,数据库存储的数据没有超过1TB,存储压力不是很大。但是数据访问量上来了,数据库的链接数及IO吞吐量成为系统瓶颈。这个时候,主从上场:由于主从分离,单一数据库的访问量降低,磁盘IO也随之降低。且随着访问量继续升级,增加从库可以很好的降低系统压力。又没过多久,随着数据量的激增,此时数据库数据量太大。这个时候要分两种情况:阶段3-1整个库的存储早已超过了1TB,且数据量基本平均分布在多个表中,单表最

2021-03-18 21:08:36 7812

原创 ShardingSphere应用专题–4.1.1版本–章节导航(一)

1.单一架构如图所示,这是单一DB的应用架构最常见的使用方式,业务操作基本都是在一个应用中完成的。优点:种架构适合项目周期短、业务简单或者复杂项目前期使用。短平快,简单。缺点:数据容载量差,没有任何扩展性。2.读写分离(主从复制)架构读写分离的架构就是把我们系统中读操作和写操作分离开,通常写操作的节点叫做Master节点,读操作的节点叫做slave,或者叫做主节点和从节点。其中从节点可以部署多个,来分摊读取数据的压力。适合数据库层访问压力较大,读多写少的场景(现在互联网项目基本都是读多写少

2021-03-18 20:36:02 8131 2

转载 一文掌握AQS底层原理

本文来源公众号:石杉的架构笔记 如有侵权请通知作者下架前言如果你想深入研究Java并发的话,那么AQS一定是绕不开的一块知识点,Java并发包很多的同步工具类底层都是基于AQS来实现的,比如我们工作中经常用的Lock工具ReentrantLock、栅栏CountDownLatch、信号量Semaphore等,而且关于AQS的知识点也是面试中经常考察的内容,所以,无论是为了更好的使用还是为了应付面试,深入学习AQS都很有必要。CAS学习AQS之前,我们有必要了解一个知识点,就是AQS底层中大量

2020-11-26 15:17:35 1089

原创 一文搞定java的四种内部类

一:成员内部类 1.成员变量 与成员内部类成员变量:在类中定义的,没有staitc修饰符的变量称为成员变量,也称为实例变量 成员变量的特点: 1.每个实例都有这样的变量 2.要在main方法中调用成员变量(实例变量),必须先要创建对象,然后才能调用实例变量 在类中定义的没有static修...

2020-05-19 11:42:53 230

原创 接口与抽象类概念

接口是一个特殊的抽象类(仅限于JDK 1.8以下 1.8以上并不完全正确,后续更新)一: 接口和抽象类相同点:1.接口和抽象类都是一种类型2.接口个抽象类都是不能实例化的.但是都可以用来声明引用,指向实现类或具体子类的对象(特别注意:****只要是接口实现类的泛化关系类 型的引用指向该实现类的对象,满足父类型的引用指向子类型对象,那么该引用就可以被强制类型转

2020-05-15 14:50:24 1448

docker-mysql-master-slave-master.zip

此资源为shardingsphere 调研专题使用的mysql 主从环境。需要准备docker compose环境。(仅支持mac和linux Windows自行搭建) 内容:一个master mysql docker实例,一个slave docker实例 内置3个库,mydb,mydb0,mydb1。仅开启了这三个库的主从。如果三个库主从不够用,自行配置。 使用:1.解压 2.执行build.sh

2021-03-25

空空如也

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

TA关注的人

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