- 博客(96)
- 收藏
- 关注
原创 如何写好一个 Spring 组件
背景Spring 框架提供了许多接口,可以使用这些接口来定制化 bean ,而非简单的 getter/setter 或者构造器注入。细翻 Spring Cloud Netflix、Spring Cloud Alibaba 等这些构建在 Spring Framework 的成熟框架源码,你会发现大量的扩展 bean 例如Eureka 健康检查package org.springframework.cloud.netflix.eureka;public class EurekaHealthChe.
2020-06-08 08:14:16
1100
原创 Spring Boot 实现配置文件加解密原理
Spring Boot 配置文件加解密原理就这么简单背景接上文《失踪人口回归,mybatis-plus 3.3.2 发布》[1] ,提供了一个非常实用的功能 「数据安全保护」 功能,不仅支持数据源的配置加密,对于 spring boot 全局的 yml /properties 文件均可实现敏感信息加密功能,在一定的程度上控制开发人员流动导致敏感信息泄露。// 数据源敏感信息加密spring: datasource: url: mpw:qRhvCwF4GOqjessEB3G+a5okP+u
2020-06-02 08:24:24
2187
原创 Spring Cloud Gateway 全局通用异常处理
为什么需要全局异常处理在传统 Spring Boot 应用中, 我们 @ControllerAdvice 来处理全局的异常,进行统一包装返回// 摘至 spring cloud alibaba console 模块处理@ControllerAdvicepublic class ConsoleExceptionHandler { @ExceptionHandler(AccessException.class) private ResponseEntity<String>
2020-05-28 08:32:58
6800
1
原创 原创 Spring Boot 2.3 新特性分层JAR
背景在我们实际生产容器化部署过程中,往往会遇到 Docker 镜像很大,部署发布很慢的情况影响 docker 镜像大小的因素,主要有以下三个方面:基础镜像的大小 。尽量选择 aphine 作为基础镜像 减少操作系统内置软件Dockerfile 指令层数。 这就要求我们优化 Dockerfile 能合并在一行的尽量合并等应用 jar 的大小。这是今天要分享的重点内容helloworld 镜像我们先来基于 spring boot 2.3.0 构建一个最简单的 web hell
2020-05-25 09:19:59
5040
原创 Spring Boot 2.3 新特性优雅停机详解
什么是优雅停机先来一段简单的代码,如下:@RestControllerpublic class DemoController { @GetMapping("/demo") public String demo() throws InterruptedException { // 模拟业务耗时处理流程 Thread.sleep(20 * 1000L); return "hello"; }}当
2020-05-18 08:36:41
3470
原创 Spring Security OAuth 2.0 发放令牌接口地址自定义
OAuth 2.0 如何获取令牌以密码模式为例,获取 Tokencurl --location --request POST 'http://oauth-server/oauth/token' \--header 'Authorization: Basic dGVzdDp0ZXN0' \--data-urlencode 'username=adm...
2020-05-08 12:06:41
2115
原创 Spring Security OAuth2 实现登录互踢
背景说明一个账号只能一处登录,类似的业务需求在现有后管类系统是非常常见的。 但在原有的 spring security oauth2 令牌方法流程(所谓的登录)无法满足类似的需求。我们先来看 TokenEndpoint 的方法流程客户端 带参访问 /oauth/token 接口,最后去调用 TokenGranterTokenGranter 根据不同的授权类型,获取用户认证信息 并去调用...
2020-04-30 08:06:08
7740
3
原创 Spring Security OAuth 格式化 token 输出
个性化token 背景上一篇文章《Spring Security OAuth 个性化token(一)》有提到,oauth2.0 接口默认返回的报文格式如下:{ "access_token":"e6669cdf-b6cd-43fe-af5c-f91a65041382", "token_type":"...
2020-04-21 08:33:56
1282
原创 关于@ResponseBody 默认输出的误区
背景@ResponseBody 默认情况返回的数据格式是什么?所谓默认情况 后台接口不指定 produces MediaType@Controllerpublic class DemoController { @ResponseBody @GetMapping(value = "/demo") public DemoVO demo() { retu...
2020-04-13 13:20:49
1505
1
原创 聊聊 OAuth 2.0 的 token expire_in 使用
问题背景有同学私信问了这样的问题,访问 pig4cloud 的演示环境 查看登录请求 network 返回报文如下:{ "access_token":"16d35799-9cbb-4c23-966d-ab606029a623", "token_type":"bearer", "re...
2020-04-08 19:45:06
11878
5
原创 「starter推荐」简单高效Excel 导出工具
EasyExcelEasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。64M内存1分钟内读取75M(46W行25列)的Excel,当然还有急速模式能更快,但是内存占用会在100M多一点 spring boot stater依赖方便在 web 环境下使用 easyexcel ,已上传至 maven 仓库<...
2020-04-01 09:48:22
1669
原创 聊聊 OAuth 2.0 的 Token 续期处理
Token 校验逻辑// CheckTokenEndpoint.checkToken@RequestMapping(value = "/oauth/check_token")@ResponseBodypublic Map<String, ?> checkToken(@RequestParam("token") String value) ...
2020-03-23 14:38:20
3756
1
原创 Spring Cloud Ribbon 源码解析
专栏目录Spring Cloud OpenFeign 源码解析Spring Cloud Ribbon 源码解析Spring Cloud Alibaba Sentinel 源码解析Spring Cloud Gatway 源码解析Spring Cloud Alibaba Nacos 源码解析代码准备依赖关系+------------+ +----...
2020-03-02 21:07:28
1108
原创 「是时候升级java11了」虚拟机Jvm参数设置
专栏目录是时候升级java11了-01-jdk11优势和jdk选择是时候升级java11了-02-升级jdk11踩坑记是时候升级java11了-03虚拟机Jvm参数设置是时候升级java11了-04微服务内http2通信之http2 Clear Text(h2c)是时候升级java11了-05微服务内h2c通信的阻碍和问题解决前言紧接前2篇文章,我们今天来聊聊升级 Java1...
2020-02-27 10:49:02
4448
原创 「升级指南」Spring Cloud Alibaba v2.2.0 升级问题整理
前言上周(2020.02.12)我们写了一篇关于《Spring Cloud Alibaba V2.2.0 发布》 相关的特性,v2.2.0 是基于 Spring Cloud Hoxton的版本。下面总结一下由 Spring Cloud Alibaba v2.1.0 升级至 v2.2.0 遇到的问题。主要问题涉及 sentinel 的问题。破坏性 ,不向下兼容Spring Cloud A...
2020-02-25 10:36:57
2341
1
原创 「是时候升级java11了」 jdk8升级至dk11踩坑记
专栏目录是时候升级java11了-01-jdk11优势和jdk选择是时候升级java11了-02-升级jdk11踩坑记是时候升级java11了-03虚拟机Jvm参数设置是时候升级java11了-04微服务内http2通信之http2 Clear Text(h2c)是时候升级java11了-05微服务内h2c通信的阻碍和问题解决前言紧接上文,下面笔者来列举我们在升级到 Java...
2020-02-22 20:10:33
2683
原创 【是时候升级java11了】 jdk11优势和jdk选择
专栏目录是时候升级java11了-01-jdk11优势和jdk选择是时候升级java11了-02-升级jdk11踩坑记是时候升级java11了-03虚拟机Jvm参数设置是时候升级java11了-04微服务内http2通信之http2 Clear Text(h2c)是时候升级java11了-05微服务内h2c通信的阻碍和问题解决Java8 商用收费从2019年1月份开始,Ora...
2020-02-20 10:52:17
3297
原创 Spring Cloud OpenFeign 源码解析
0. 入门demo此代码是 OpenFeign 的示例代码,获取一个Github 仓库的所有贡献者,创建一个issue。 建议由此开始 DEBUG 调试阅读源码interface GitHub { @RequestLine("GET /repos/{owner}/{repo}/contributors") List<Contributor> contributo...
2020-02-18 11:40:21
1670
原创 【面试必备】聊聊高性能延时队列应用
延时队列的应用场景:下单后,30分钟内未付款就自动取消订单等;支付后,24小时未评论自动好评;在我们实际开发过程中,应用场景很多...基于Redis Zset 实现实现原理Redis由于其自身的Zset数据结构,也同样可以实现延时的操作。Zset本质就是Set结构上加了个排序的功能,除了添加数据value之外,还提供另一属性score,这一属性在添加元素时候可以指定,每次指定score后...
2020-02-12 15:34:33
1442
原创 通过Nacos让Nginx拥有服务发现能力
背景先来回忆一下, nginx 如何配置多个实例的负载均衡,配置如下:upstream serverList { server 172.17.0.111:9999; server 172.17.0.110:9999;} server { location / { proxy_pass http://serverList; }}当我们的服...
2020-02-05 10:31:06
5328
原创 3天两版 Spring Boot 2.2.4 发布!紧急修复Spring Cloud Hoxton.SR1 兼容问题
Spring Boot 2.2.4 发布了,可以从 repo.spring.io 和 Maven Central 获取。此版本修复了 6 个 bug,进行了一些文档改进和依赖性升级,解决了 Gradle 5.3 至 5.6 的依赖性解析问题。???? Bug修复@ActiveProfiles与@SpringBootTest使用,覆盖spring.profiles.active 问题从Grad...
2020-01-21 11:55:45
2656
原创 翻车!Spring Boot 2.2.3 不兼容 Spring Cloud Hoxton.SR1
问题说明Spring Boot 2.2.3 修复了 Spring Boot 2.2的大量问题,当升级至 2.2.3 以后,直接翻车 pigx-gateway 网关应用直接启动不起来。翻车日志***************************APPLICATION FAILED TO START***************************Description:A...
2020-01-20 20:34:53
8489
原创 Spring 注解之@Import 注入的各种花活
今天来分享一下 pig4cloud 中涉及的 @Import 的注入形式。通过不同形式的注入方式,最大程度使得架构简洁。@Import导入一个组件来看 EnablePigxDynamicRoute 这个注解,当我们需要开始动态数据源时,只需要在main 方法加上此注解即可。@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNT...
2020-01-16 14:50:44
1188
原创 Redis 6.0 新特性之集群代理
Redis 6.0 release notes=======================Upgrade urgency LOW: This is the first RC of Redis 6.Introduction to the Redis 6 release===================================Redis 6 improves Redis...
2020-01-07 11:56:04
2631
原创 【立即升级】Spring Boot Admin 2.2.1 发布,修复集群日志问题
maven 依赖坐标<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.2.1</version><...
2019-12-27 19:49:31
1245
原创 Spring Cloud Ilford 版本又来了
Spring Cloud 联合创始人 Spencer Gibb 发布了 Spring Cloud 2020 的计划。本文就来分析一下 Spring Cloud 2020代号:Ilford (伊尔福德)公布 Spring Cloud 的下个版本代号 Ilford,第一个版本计划 2020年3月份发布。核心依赖为:Spring Framework 5.3 、Spring Boot 2...
2019-12-24 14:53:25
2366
原创 Spring Cloud Hoxton.RELEASE 正式发布!异步即未来
Spring社区宣布,Spring Cloud Hoxton RELEAS 正式发布。该版本可以在Maven Central中找到。您可以查看Hoxton 发行说明以获取更多信息。<dependencyManagement> <dependencies> <dependency> <groupId>o...
2019-11-29 00:27:43
7172
原创 Spring Cloud 项目 SpringApplication Run 执行两次解密
ApplicationContextInitializer介绍作用是在ConfigurableApplicationContext类型的ApplicationContext.refresh 操作之前,允许我们对ConfiurableApplicationContext增强处理的扩展。业务场景在实际开发过程中,web应用中需要编程方式对应用上下文做初始化。比如,注册属性源(bootstrap...
2019-11-27 07:43:39
4349
2
原创 Spring Security 新特性 Lambda DSL 使用
Lambda DSL概述Spring Security 5.2 对 Lambda DSL 语法的增强,允许使用lambda配置HttpSecurity、ServerHttpSecurity重要提醒,之前的配置方法仍然有效。lambda的添加旨在提供更大的灵活性,但是用法是可选的。让我们看一下HttpSecurity的lambda配置与以前的配置样式相比。HttpSecurity使用l...
2019-11-25 08:18:13
800
原创 Spring Cloud Greenwich.SR4发布
Spring Cloud Greenwich Release Train 的Service Release 4(SR4)现已发布。该版本可以在MaveCentral中找到。您可以查看Greenwich 发行说明以获取更多信息。Spring Cloud Greenwich.SR4底层依赖升级至Spring Boot 2.1.10.RELEASESpring Cloud Gateway添加了...
2019-11-20 23:15:08
1200
原创 Spring Cloud Alibaba Sidecar 多语言微服务异构
Spring Cloud Alibaba Sidecar 介绍自 Spring Cloud Alibaba 2.1.1 版本后增加了 spring-cloud-alibaba-sidecar 模块作为作为一个代理的服务来间接性的让其他语言可以使用spring cloud alibaba等相关组件。通过与网关的来进行路由的映射,从而可以做到服务的获取,然后可以使用Ribbon间接性调用。如...
2019-11-18 14:59:43
6484
原创 不推荐使用Spring Boot 2.2.0 ,这个问题你肯定会遇到 (二)
项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注 最新版本实践上篇文章讲到 Spring Boot 2.2.0 和 MyBatis 兼容问题,今天再来看一下 这个 boom changeConfigurationProperties 注解使用如上图,当配置文件中存在相同组的属性,用户名、密码、年龄 都属于用户属...
2019-11-11 08:20:06
3181
原创 不推荐使用Spring Boot 2.2.0 ,这个问题你肯定会遇到
项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注最近升级项目的依赖 到最新版本版本变化依赖项目版本目标版本Spring Boot2.1.9.RELEASE2.2.0.RELEASESpring CloudGreenwich.SR3Hoxton.RC1Spring Boot Ad...
2019-11-07 11:37:16
2008
原创 面试官: 两个Redis集群 如何平滑数据迁移
项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注问题由于生产环境的各种原因,我们需要对现有服务器进行迁移,包括线上正在运行的 redis 集群环境 如何去做?涉及到数据源变动,原有数据如何平滑迁移到新实例,从而可以实现无缝迁移?方案汇总基于 redis 自身的RDB/AOF 备份机制执行 saveb...
2019-11-06 08:42:02
1465
原创 面试官: 两个Redis实例怎么快速对比哪些数据不一致
最近又在翻 黄老师的 《Redis 设计与实现》,想到几道面试题 结合实际生产过程中的一些步骤作为总结问题如上图如何能快速的从两个Redis实例怎么快速对比哪些数据不一致?什么是数据不一致key不一致相同key名 在不同实例上的数据类型不一致key 存在于源 redis 不存在目标 rediskey 存在于 目标redis 不存在源redisvalue...
2019-10-31 08:58:59
2298
原创 国产微服务网关Apache APISIX 上手
2019 年 10 月 17 日,支流科技 API 网关 APISIX 进入 Apache 开始孵化。笔者表示去搜索了一下这家公司 OpenResty 圈内顶级大牛《OpenResty 最佳实践》作者 温铭 和 王院生,这就非常有意思了APISIX 是一个高性能、可扩展的微服务 API 网关。它是基于 Nginx 和 etcd 来实现,和传统 API 网关相比,APISIX 作为微服务...
2019-10-28 07:54:05
8243
原创 Java程序到底是如何执行的
项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注最近裸辞,好好歇歇。整理面试题,欢迎关注。Java 程序执行过程无论是使用开发工具IDEA Eclipse 还是使用容器 Tomcat jetty, Java 程序的执行流程如下:Java 代码编译成字节码, 从文件后缀来看.java编译成.class 类型的文件...
2019-10-24 17:02:43
710
原创 【小技巧】spring security oauth2 令牌实现多终端登录状态同步
目的说明解决不同客户端使用token,各个客户端的登录状态必须保持一致,退出状态实现一致。同上述问题类似如何解决不同租户相同用户名的人员的登录状态问题。默认的DefaultTokenServices 创建逻辑 @Transactional public OAuth2AccessToken createAccessToken(OAuth2Authentication auth...
2019-09-20 17:19:19
6748
3
原创 【最简OAuth 2.0 教程】开发认证中心及资源服务器接入
背景: 网上很多讲配置 oauth2 ,配置方法 复杂纷繁对于初学者很不友好,让人望而却步 欢迎关注本系列博客 基于 spring cloud 最新版本 hoxton 完成oauth2 的实践 基于 Spring Cloud OAuth ,用简洁的方式搭建oauth的认证中心, 关于oauth2 的授权模式 请直接参考 [阮一峰 OAuth 2.0 的四种方式的详细介绍...
2019-08-26 12:23:47
3093
原创 【spring cloud hoxton】Ribbon 真的能被 spring-cloud-loadbalancer 替代吗
背景 早上刷圈看到 Spring Cloud Hoxton.M2 Released 的消息,随手发布到了我的知识星球,过了会有个朋友过来如下问题。 抽取半天时间学习spring-cloud-loadbalancer 的源码,整理出此文总结 Spring Cloud Hoxton.M2 是第一个整合新的loadbalancer实现来替代Ribbon的版本 Spring Cloud...
2019-08-21 09:32:52
9680
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人