blog-comment's Introduction
blog-comment's People
blog-comment's Issues
Optional是个好东西,不过你真的会用么? | Java日知录
https://javadaily.cn/post/2022021132/23590bd026e7/
引言在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示
SpringCloud alibaba微服务实战三十 - 统一Oauth2.0资源服务器模块 | Java日知录
前面文章咱们对比过网关授权与微服务授权的区别,文章也提到了,如果要实现微服务授权,一般会构建一个独立的资源服务器配置模块,否则每个后端业务都需要进行资源服务器的配置,那本节内容我们就来完成此功能。
SpringBoot 如何进行参数校验,老鸟们都这么玩的! | Java日知录
大家好,我是飘渺。 前几天写了一篇《SpringBoot如何统一后端返回格式?老鸟们都是这样玩的!》阅读效果还不错,而且被很多号主都转载过,今天我们继续第二篇,来聊聊在SprinBoot中如何集成参数校验Validator,以及参数校验的高阶技巧(自定义校验,分组校验)。 此文是依赖于前文的代码基础,已经在项目中加入了全局异常校验器。(代码仓库在文末) 首先我们来看看什么是Validator参
Springboot + Mysql8实现读写分离 | Java日知录
在实际的生产环境中,为了确保数据库的稳定性,我们一般会给数据库配置双机热备机制,这样在master数据库崩溃后,slave数据库可以立即切换成主数据库,通过主从复制的方式将数据从主库同步至从库,在业务代码中编写代码实现读写分离(让主数据库处理 事务性增、改、删操作,而从数据库处理查询操作)来提升数据库的并发负载能力。
SpringCloud 微服务认证方案 | Java日知录
https://javadaily.cn/post/2022021128/1b17b6b1ea14/
在微服务开发中中我们首先会通过认证中心获取JWT,然后每次发起后端请求都会将JWT放在请求头中,这时候我们后端需要对这个JWT进行验证判断是否合法及是否有对应请求权限,这一过程主要有两种方案: 服务端自主验签方案 API网关统一验签方案
SpringBoot 如何生成接口文档,老鸟们都这么玩的! | Java日知录
大家好,我是飘渺。 SpringBoot老鸟系列的文章已经写了两篇,每篇的阅读反响都还不错,果然大家还是对SpringBoot比较感兴趣。那今天我们就带来老鸟系列的第三篇:集成Swagger接口文档以及Swagger的高级功能。 文章涉及到的代码已经上传到了github,希望最终能应用在你们实际项目上,当然如果有其他需要我添加到内容也可以直接留言告诉我,我会视情况给你们加上去的。 好了,闲话少叙,
SpringCloud alibaba微服务实战十三 - Oauth2.0安全认证 | Java日知录
导读:为了保证我们微服务的安全性,本章主要内容是使用Oauth2.0给我们微服务加上安全校验。 概念为了保证服务的安全性,往往都会在接口调用时做权限校验。在分布式架构中我们会把复杂的业务拆成多个微服务,这样不得不在所有服务中都实现这样的权限校验逻辑,这样就会有很多代码和功能冗余。所以在微服务架构中一般会独立出一个单独的认证授权服务,供其他所有服务调用。 在SpringCloud体系中,我们只对
干掉BeanUtils?试试 MapStruct,优雅的对象转换解决方案! | Java日知录
https://javadaily.cn/post/2022021001/c5177c72bb0b/
1、什么是MapStruct1.1 JavaBean 的困扰对于代码中 JavaBean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的 JavaBean 之间的相互转化, 非常的影响观感,却又不得不存在。我后来想的一个办法就是通过反射,或者自己写很多的转换器。 第一种通过反射的方法确实比较方便,但是现在无论是 BeanUtils, BeanCopier 等在使用反射的
SpringBoot 如何进行业务校验,老鸟们都这么玩的 | Java日知录
大家好,我是飘渺。 今天继续给大家带来SpringBoot老鸟系列 的第七篇,来聊聊在SpringBoot项目中如何实现业务异常校验Assert。 希望通过今天的文章,咱们能够了解到: 如何使用Assert参数校验? 为什么用了Validator参数校验,还必须再用Assert参数校验? 首先我们来看看为什么需要Assert?
记一次对达梦数据库的优化过程 | Java日知录
某年某月某日的一个下午,接收到监控服务器的一条告警短信:尊敬的运维工程师 XX,你好:“192.168.136.200”数据库服务器 CPU 异常,CPU 使用率 98.7%,请尽快处理。看到这个消息浑身一紧,赶紧掐灭手中的烟,跑回办公室。
Springboot2.x + ShardingSphere实现分库分表 | Java日知录
https://javadaily.cn/post/2022021054/df8c499d62e3/
概念解析垂直分片按照业务拆分的方式称为垂直分片,又称为纵向拆分,它的核心理念是专库专用。 在拆分之前,一个数据库由多个数据表构成,每个表对应着不同的业务。而拆分之后,则是按照业务将表进行归类,分布到不同的数据库中,从而将压力分散至不同的数据库。 下图展示了根据业务需要,将用户表和订单表垂直分片到不同的数据库的方案。
干掉BeanUtils?试试 MapStruct,优雅的对象转换解决方案! | Java日知录
1、什么是MapStruct1.1 JavaBean 的困扰对于代码中 JavaBean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的 JavaBean 之间的相互转化, 非常的影响观感,却又不得不存在。我后来想的一个办法就是通过反射,或者自己写很多的转换器。 第一种通过反射的方法确实比较方便,但是现在无论是 BeanUtils, BeanCopier 等在使用反射的
使用MySQL请用好JSON这张牌 | Java日知录
关系型的结构化存储存在一定的弊端,因为它需要预先定义好所有的列以及列对应的类型。但是业务在发展过程中,或许需要扩展单个列的描述功能,这时,如果能用好 JSON 数据类型,那就能打通关系型和非关系型数据的存储之间的界限,为业务提供更好的架构选择。 当然,很多同学在用 JSON 数据类型时会遇到各种各样的问题,其中最容易犯的误区就是将类型 JSON 简单理解成字符串类型。 但当你看完这篇文章后,会真正
about | Java日知录
程序员张某,年二十有三,始从文,连考而不中。遂从武,练武场上发一矢,中鼓吏,逐之出。改学IT,自撰一函数,用之,堆栈溢出! 大家好,我是飘渺!一位写代码的架构师,做架构的程序员,欢迎大家关注我的个人公众号,坚持原创,分享开发中的点点滴滴。 当然了,你也可以添加我个人微信号与我联系或者进微信群,咱们一起聊聊技术,侃侃人生!
SpringBoot 如何进行业务校验,老鸟们都这么玩的 | Java日知录
https://javadaily.cn/post/2022012849/1787b5760f92/
大家好,我是飘渺。 今天继续给大家带来SpringBoot老鸟系列 的第七篇,来聊聊在SpringBoot项目中如何实现业务异常校验Assert。 希望通过今天的文章,咱们能够了解到: 如何使用Assert参数校验? 为什么用了Validator参数校验,还必须再用Assert参数校验? 首先我们来看看为什么需要Assert?
Java8,感受 Lambda 之美 | Java日知录
https://javadaily.cn/2022/02/09/Java8-%E6%84%9F%E5%8F%97-Lambda-%E4%B9%8B%E7%BE%8E/#more
一、引言java8最大的特性就是引入Lambda表达式,即函数式编程,可以将行为进行传递。总结就是:使用不可变值与函数,函数对不可变值进行处理,映射成另一个值。 二、java重要的函数式接口1、什么是函数式接口函数接口是只有一个抽象方法的接口,用作 Lambda 表达式的类型。使用@FunctionalInterface注解修饰的类,编译器会检测该类是否只有一个抽象方法或接口,否则,会报错。可以有
SpringCloud alibaba微服务实战三十二 - 集成RocketMQ实现分布式事务 | Java日知录
前言分布式事务是在微服务开发中经常会遇到的一个问题,之前的文章中我们已经实现了利用Seata来实现强一致性事务,其实还有一种广为人知的方案就是利用消息队列来实现分布式事务,保证数据的最终一致性,也就是我们常说的柔性事务。
面试时遇到CAP问题要小心,并没你想的那么简单! | Java日知录
在互联网技术面试中,考察分布式技术已经是面试的标配了。无论你是高阶程序员,还是架构师,都要掌握分布式系统设计。今天我们就先来看一看在面试中怎么回答分布式的基础理论,才能抓住面试官的芳心。 案例背景CAP 理论是分布式系统中最核心的基础理论,虽然在面试中,面试官不会直白地问你 CAP 理论的原理,但是在面试中遇到的分布式系统设计问题,都绕不开你对 CAP 的理解和思考。 而且在面试中,针对面试不同岗
SpringCloud alibaba微服务实战二十五 - 网关授权时Restful接口如何处理 | Java日知录
前言之前在网关集成RBAC授权文章中提到了SpringCloud可以基于路径匹配器授权在网关层进行用户权限校验,这种方式的实现原理是Springcloud Gateway接受到请求后根据 ReactiveAuthorizationManager#check(Mono authenticationMono, AuthorizationContext aut
SpringCloud alibaba微服务实战二十八 - 两种授权模式比较:网关授权 VS 微服务授权 | Java日知录
在SpringCloud架构中,实现授权功能有两种实现方式: 在网关层进行授权 由后端微服务自己授权 两种方式在此系列文章中都有实现方案,那么问题来了:哪种才是最优方案,哪种方案更合理呢? 很抱歉,看完这篇文章你也不一定能得到你想要的答案,因为结论是并没有最优方案,两种方案各有千秋,只有根据自身业务选择对应的方案。本文我们将两种方案做一个简单对比,以便大伙在做方案决策有个选择参考。
categories | Java日知录
https://javadaily.cn/categories/
一个关注| Java | Spring Boot | Spring Cloud | 干货分享的博客网站
SpringCloud alibaba微服务实战三十三 - 实现网关的灰度发布 | Java日知录
前言这篇文章来源于粉丝提出的一个问题:如何解决多环境统一注册中心服务实例乱窜? 怎么理解呢? 假设现在开发环境的AccountService已经在Nacos中注册了,现在小张需要对它进行修改升级,本地启动AccountService后也注册到了Nacos,但是在调试的时候请求通过网关后经常直接跳转到开发环境,这样的话小张就没办法安心debug了。
如何理解 RPC 远程服务调用? | Java日知录
如何理解 RPCRPC 远程服务调用是分布式服务架构的基础,无论微服务设计上层如何发展,讨论服务治理都绕不开远程服务调用,那么如何理解 RPC、有哪些常见的 RPC 框架、实现一款 RPC 框架需要哪些技术呢? RPC(Remote Procedure Call)是一种进程间通信方式,百科给出的定义是这样的:“RPC(远程过程调用协议),它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层
这份史上最详细的docker学习手册请查收 | Java日知录
索引组织表:万物皆索引 | Java日知录
InnoDB 存储引擎是 MySQL 数据库中使用最为广泛的引擎,在海量大并发的 OLTP 业务中,InnoDB 必选。它在数据存储方面有一个非常大的特点:索引组织表(Index Organized Table)。 接下来我就带你了解最为核心的概念:索引组织表。希望你学完今天的内容之后能理解 MySQL 是怎么存储数据和索引对象的。
敢在简历上写消息队列,这几个问题必须拿下! | Java日知录
面试官在面试候选人时,如果发现候选人的简历中写了在项目中使用了 MQ 技术(如 Kafka、RabbitMQ、RocketMQ),基本都会抛出一个问题:在使用 MQ 的时候,怎么确保消息 100% 不丢失? 这个问题在实际工作中很常见,既能考察候选者对于 MQ 中间件技术的掌握程度,又能很好地区分候选人的能力水平。接下来,我们就从这个问题出发,探讨你应该掌握的基础知识和答题思路,以及延伸的面试考点
聊聊在Spring种事务会失效的12种场景 | Java日知录
前言对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到spring事务。
SpringBoot中生成接口文档,我选择smart-doc | Java日知录
之前我在SpringBoot老鸟系列中专门花了大量的篇幅详细介绍如何集成Swagger,以及如何对Swagger进行扩展让其支持接口参数分组功能。详情可见:SpringBoot 如何生成接口文档,老鸟们都这么玩的!
SpringBoot 如何进行参数校验,老鸟们都这么玩的! | Java日知录
https://javadaily.cn/post/2022012731/dc48fbdfae7c/
大家好,我是飘渺。 前几天写了一篇《SpringBoot如何统一后端返回格式?老鸟们都是这样玩的!》阅读效果还不错,而且被很多号主都转载过,今天我们继续第二篇,来聊聊在SprinBoot中如何集成参数校验Validator,以及参数校验的高阶技巧(自定义校验,分组校验)。 此文是依赖于前文的代码基础,已经在项目中加入了全局异常校验器。(代码仓库在文末) 首先我们来看看什么是Validator参
tags | Java日知录
一个关注| Java | Spring Boot | Spring Cloud | 干货分享的博客网站
SpringCloud alibaba微服务实战二十五 - 网关授权时Restful接口如何处理 | Java日知录
https://javadaily.cn/post/2022020903/09ad7b8db3f8/
前言之前在网关集成RBAC授权文章中提到了SpringCloud可以基于路径匹配器授权在网关层进行用户权限校验,这种方式的实现原理是Springcloud Gateway接受到请求后根据 ReactiveAuthorizationManager#check(Mono authenticationMono, AuthorizationContext aut
TCP为什么需要三次握手? | Java日知录
什么是 TCP?TCP 协议是我们每天都在使用的一个网络通讯协议,因为绝大部分的网络连接都是建立在 TCP 协议上的,比如你此刻正在看的这篇文章是建立在 HTTP(Hypertext Transfer Protocol,超文本传送协议) 应用层协议的基础上的,而 HTTP 协议的“底层”则是建立在 TCP 的传输层协议上的。因此可以理解为,你之所以能看到本篇文章就是得益于 TCP 协议的功劳。 我
win10上使用docker,一样可以纵享丝滑! | Java日知录
大家好,我是飘渺! 在平时开发工作中,如果你要学习或使用某个中间件,如Redis,MongoDB,ES等,你肯定得先去官网下载、安装、然后配置。有时候遇到一个问题,捣鼓半天还是无法启动,等你哼哧哼哧调整好,一上午就过去了。 现在已经2022年了,这种事你用docker来干不香吗?先docker pull 一下,然后再docker run 一下,两句命令,5分钟搞定,剩下的3个小时拿来看看 JAVA
docker基础与实战,看这一篇就够了 | Java日知录
docker 基础什么是DockerDocker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。 Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互
Spring Boot整合Prometheus实现应用监控 | Java日知录
Micrometer简介Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,应用程序只需要使用 Micrometer 的通用 API 来收集性能指标即可。Micrometer 会负责完成与不同监控系统的适配工作。这就使得切换监控系统变得很容易。Micrometer 还支持推送数据到多个不同的监控系统。Micrometer类似日志系统中SLF4J。
1
111
SpringBoot中实现业务校验,这种方式才叫优雅! | Java日知录
https://javadaily.cn/post/2022020916/01a7b0039826/
大家好,我是飘渺。 在日常的接口开发中,为了保证接口的稳定安全,我们一般需要在接口逻辑中处理两种校验: 参数校验 业务规则校验 首先我们先看看参数校验。
为什么微服务需要 API 网关? | Java日知录
对网关我们并不陌生,网关的概念来源于计算机网络,表示不同网络之间的关口。在系统设计中,网关也是一个重要的角色,其中最典型的是各大公司的开放平台,开放平台类网关是企业内部系统对外的统一入口,承担了很多业务,比如内外部数据交互、数据安全、监控统计等功能。 在微服务架构中,API 网关的作用和开放平台等传统网关又有一些不同,下面一起来看一下微服务中 API 网关的相关知识。
微服务架构及其最重要的10个设计模式 | Java日知录
软件设计模式是解决软件设计中常见问题的通用、可复用的解决方案。设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子。现在,我将介绍一系列设计模式来实现这些最佳实践。
如何跟领导解释为什么选择SpringCloudalibaba作为微服务开发框架 | Java日知录
什么是微服务提到微服务不得不提Martin Fowler在2014年3月25日发表的文章 Microservices,里面给出了微服务的定义。后续国内所有关于微服务的介绍都是基于这篇文章的翻译,或加上自己的理解而成。其中最重要的一段如下:
SpringBoot中实现业务校验,这种方式才叫优雅! | Java日知录
大家好,我是飘渺。 在日常的接口开发中,为了保证接口的稳定安全,我们一般需要在接口逻辑中处理两种校验: 参数校验 业务规则校验 首先我们先看看参数校验。
架构描述到底是什么? | Java日知录
作为一名程序员,你历经千幸万苦终于成为了架构师。 现在你接到了一个任务,需要设计一款软件。 你满心欢雀,冥思苦想。 系统在你心里一点一点成型,数据库如何设计?代码如何实现?组件如何部署?你脑海里都有了答案。 是时候了,你倾尽全力设计的系统,应该让所有人都来欣赏! 可是,该如何表达你的设计,你的**呢?
干掉BeanUtils?试试 MapStruct,优雅的对象转换解决方案! | Java日知录
https://javadaily.cn/post/2022021001c5177c72bb0b/
1、什么是MapStruct1.1 JavaBean 的困扰对于代码中 JavaBean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的 JavaBean 之间的相互转化, 非常的影响观感,却又不得不存在。我后来想的一个办法就是通过反射,或者自己写很多的转换器。 第一种通过反射的方法确实比较方便,但是现在无论是 BeanUtils, BeanCopier 等在使用反射的
架构设计方法论 | Java日知录
https://javadaily.cn/2022/02/07/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%B3%95%E8%AE%BA/
本系列文章教你怎么样成为一名架构师,本篇文章目的是让你掌握一套架构方法论,掌握规范的设计方法,设计出更好、更稳定的架构设计。
友情链接 | Java日知录
友情链接 沉默王二 - 一个不止写代码的程序员,还写有趣有益的文字,给不喜欢严肃的你 其它需要展示你的网站,就在本页下面留言吧,也算是一种宣传方式。格式要求如下: 网站名称:JAVA日知录 网站链接:https://javadaily.cn 网站描述:一个关注| Java | Spring Boot | Spring Cloud | 干货分享的博客网站
开发人员如何理解kubernetes? | Java日知录
概述在JAVA开发中使用 docker run命令配合上自建的Docker仓库可以很容易部署JAVA服务,但是使用Docker部署应用会有几个问题: 一个docker run 不是部署服务的可靠方法,因为它创建的容器在单个机器运行。虽然Docker引擎提供了一些基本的管理功能,例如在容器崩溃或计算器重启时自动重启容器。但是它不能处理机器崩溃。无法保证服务的高可用! 另一个问题是服务通常不是孤立存
RBAC权限设计中如何整合数据权限? | Java日知录
在项目实际开发中我们不光要控制一个用户能访问哪些资源,还需要控制用户只能访问资源中的某部分数据。 控制一个用户能访问哪些资源我们有很成熟的权限管理模型即RBAC,但是控制用户只能访问某部分资源(即我们常说的数据权限)使用RBAC模型是不够的,本文我们尝试在RBAC模型的基础上融入数据权限的管理控制。 首先让我们先看下RBAC模型。
数据库4纬度优化实战 | Java日知录
当有人问你如何对数据库进行优化时,很多人第一反应想到的就是SQL优化,如何创建索引,如何改写SQL。他们把数据库优化与SQL优化划上了等号。当然这不能算是完全错误的回答,只不过思考的角度稍微片面了些,太“程序员思维”化了,没有站在更高层次来回答。那今天我们就将视角拔高,站在架构的角度来聊聊这一问题,数据库优化可以从哪些维度入手?
一条查询SQL的执行过程 | Java日知录
需要从数据库检索某些符合要求的数据,我们很容易写出 Select A B C FROM T WHERE ID = XX 这样的SQL,那么当我们向数据库发送这样一个请求时,数据库到底做了什么? 我们今天以MYSQL为例,揭示一下MySQL数据库的查询过程,并让大家对数据库里的一些零件有所了解。
SpringCloud alibaba微服务实战三十一 - 独立操作日志组件 | Java日知录
概述在单体项目中如果我们需要记录操作日志一般会通过如下手段实现: 建立一个自定义注解,标注业务操作类型 通过AOP组装日志实体,完成日志的收集工作
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.