spring ribbon cloud msa

让Apache Beam在GCP Cloud Dataflow上跑起来

简介 在文章《Apache Beam入门及Java SDK开发初体验》中大概讲了Apapche Beam的简单概念和本地运行,本文将讲解如何把代码运行在GCP Cloud Dataflow上。 本地运行 通过maven命令来创建项目: mvn archetype:generate \ -Darche ......
Dataflow Apache Cloud Beam GCP

Spring AOP与AspectJ的对比及应用

1 简介 AOP,即面向切面编程是很常用的技术,特别是在Java Web开发中。而最流行的AOP框架分别是Spring AOP和AspectJ。 2 Spring AOP vs AspectJ Spring AOP是基于Spring IoC实现的,它解决大部分常见的需求,但它并不是一个完整的AOP解 ......
AspectJ Spring AOP

Spring Native打包本地镜像,无需通过Graal的maven插件buildtools

简介 在文章《GraalVM和Spring Native尝鲜,一步步让Springboot启动飞起来,66ms完成启动》中,我们介绍了如何使用Spring Native和buildtools插件,打包出本地镜像,也打包成Docker镜像。本文探索一下,如果不通过这个插件来生成镜像。这样我们可以控制更 ......
buildtools 插件 镜像 Spring Native

dapr本地托管的服务调用体验与Java SDK的Spring Boot整合

1 简介 之前在文章《dapr入门与本地托管模式尝试》中介绍了dapr和本地托管,本文我们来介绍如果在代码中使用dapr的服务调用功能,并把它整合到Spring Boot中。 Dapr服务调用的逻辑如下: 本次实验会创建两个服务: pkslow-data,提供数据服务,用于返回数据; pkslow- ......
Spring dapr Java Boot SDK

在Spring Boot中整合Katharsis,来快速开发JSON API的Web应用

1 简介 我们进行Web API开发的时候,经常会使用Json格式的消息体,而Json格式非常灵活,不同的人会有不同的设计风格和实现,而JSON API提供了一套标准。但它并不提供直接实现。 Katharsis是JSON API的Java实现,使用它可以快速开发出Json based的Web接口,还 ......
Katharsis Spring Boot JSON API

Spring在Filter中记录Web请求Request和返回Response的内容及时长

1 简介 在Spring MVC中,我们有时需要记录一下请求和返回的内容,方便出现问题时排查。比较Header、Request Body等。这些在Controller也可以记录,但在Filter中会更方便。而我们使用的是OncePerRequestFilter。 2 记录请求 2.1 流重复读的问题 ......
时长 Response Request 内容 Spring

GraalVM和Spring Native尝鲜,一步步让Springboot启动飞起来,66ms完成启动

简介 GraalVM是高性能的JDK,支持Java/Python/JavaScript等语言。它可以让Java变成二进制文件来执行,让程序在任何地方运行更快。这或许是Java与Go的一场战争? 下载安装GraalVM 安装GraalVM 首先到官网下载,我是直接到GitHub Release Pag ......
Springboot GraalVM Spring Native 66

在spring boot3中使用native image

简介 在之前spring boot3文章中我们介绍了,spring boot3的一个重要特性就是支持把spring boot3的应用编译成为GraalVM的Native Image。 今天我们用具体的例子来给大家演示一下如何正确的将spring boot3的应用编译成为native image。 安 ......
spring native boot3 image boot

spring.jackson.default-property-inclusion 无效问题分析

背景 项目里每个返回体里都有@JsonInclude(JsonInclude.Include.NON_NULL) 这个注解,也就是不返回null字段 想有没有办法全局配置一下,这样就不用每个类都加这个注解了 spring: jackson: default-property-inclusion: n ......

Ribbon负载均衡 (源码分析)

Ribbon 是Netflix公司提供的负载均衡客户端,一般应用于服务的消费方法;Ribbon 可以解决基于负载均衡策略进行服务调用, 所有策略都会实现IRule接口;Ribbon 内置的负载策略有8种,可以通过查看IRule接口的实现类进行分析;@LoadBalanced的作用是描述RestTem... ......
源码 Ribbon

从 Cloud-Native Relational DB 看数据库设计

论文内容:Amazon Aurora: Design Considerations for HighThroughput Cloud-Native Relational Databases 里面介绍了一种云原生的关系型数据库 Aurora 的体系结构,以及导致该体系结构的设计考虑因素。我觉得和普通的 ......

day01-Spring基本介绍

Spring基本介绍 1.官方资料和下载 1.1Spring5下载 直接访问 https://repo.spring.io/ui/native/release/org/springframework/spring/,选择相应版本即可 进入官网 https://spring.io/ 进入Spring5 ......
Spring day 01

day05-Spring管理Bean-IOC-03

Spring管理Bean-IOC-03 2.基于XML配置bean 2.15bean的生命周期 bean对象的创建是由JVM完成的,然后执行如下方法: 执行构造器 执行set相关方法 调用bean的初始化方法(需要配置) 使用bean 当容器关闭时,调用bean的销毁方法(需要配置) 例子 Hous ......
Bean-IOC Spring Bean day IOC

day07-Spring管理Bean-IOC-05

Spring管理Bean-IOC-05 3.基于注解配置bean 3.3自动装配 基本说明: 基于注解配置bean,也可以实现自动装配,使用的注解是:@AutoWired或者@Resource @AutoWired 的规则说明 (1)在IOC容器中查找待装配的组件的类型,如果有唯一的bean装配(按 ......
Bean-IOC Spring Bean day IOC

【深入浅出Spring原理及实战】「源码调试分析」结合DataSourceRegister深入分析ImportBeanDefinitionRegistrar的源码运作流程

每日一句 人的一生中不可能会一帆风顺,总会遇到一些挫折,当你对生活失去了信心的时候,仔细的看一看、好好回想一下你所遇到的最美好的事情吧,那会让你感觉到生活的美好。 注入案例代码 如何通过实现SpringBoot框架带有的ImportBeanDefinitionRegistrar注册器,注入我们想要注 ......

Spring Cloud服务发现组件Eureka

简介 Netflix Eureka是微服务系统中最常用的服务发现组件之一,非常简单易用。当客户端注册到Eureka后,客户端可以知道彼此的hostname和端口等,这样就可以建立连接,不需要配置。 Eureka 服务端 添加Maven依赖: <dependency> <groupId>org.spr ......
组件 Spring Eureka Cloud

通过Google Cloud Storage(GCS)管理Terraform的状态State

管理Terraform状态文件的最佳方式是通过云端的统一的存储,如谷歌云就用GCS。 首先要创建一个Bucket: $ gsutil mb -p pkslow -l us-west1 -b on gs://pkslow-terraform Creating gs://pkslow-terraform ......
Terraform 状态 Storage Google Cloud

在GCP上创建Cloud SQL的三种方式(Console,gcloud,Terraform)

1 简介 Cloud SQL 是GCP上的关系型数据库,常用的有三种方式来创建: (1) 界面操作 (2) 命令行 gcloud (3) Terraform 在开始之前,可以查看:《初始化一个GCP项目并用gcloud访问操作》。 2 GCP 操作界面 登陆GCP,选择SQL,可以创建MySQL、P ......
Terraform Console 方式 gcloud Cloud

Spring Boot通过Actuator显示git和build的信息

1 简介 为了更好的版本控制和问题定位,我们需要知道正在运行的应用是什么版本,什么时候打包的,Git的相关信息等。通过/actuator/info可以帮助我们获取这些信息。 2 配置 首先要有actuator的依赖: <dependency> <groupId>org.springframework ......
Actuator Spring build 信息 Boot

通过Docker启动Solace,并在Spring Boot通过JMS整合Solace

1 简介 Solace是一个强大的实时性的事件驱动消息队列。本文将介绍如何在Spring中使用,虽然代码使用的是Spring Boot,但并没有使用相关starter,跟Spring的整合一样,可通用。JMS是通过的消息处理框架,可以深入学习一下,不同的MQ在JMS的整合上都是类似的。 2 通过Do ......
Solace Docker Spring Boot JMS

通过Docker启动DB2,并在Spring Boot整合DB2

1 简介 DB2是IBM的一款优秀的关系型数据库,简单学习一下。 2 Docker安装DB2 为了快速启动,直接使用Docker来安装DB2。先下载镜像如下: docker pull ibmcom/db2:11.5.0.0 启动数据库如下: docker run -itd \ --name mydb ......
DB2 Docker Spring DB Boot

【项目实战】从零到一搭建Spring Boot整合Mybatis-plus

前言 2023年想搭建一套属于自己的框架,做一个属于自己想法的项目。这些年工作中一直用公司已有的框架,以前有跟着学习视频搭建过,但自己真正动手搭建时发现问题还是很多,比如没有引入Mybatis-plus包之前,项目api test是成功的,引入Mybatis-plus包后就一直启动不成功,而且异常信 ......
Mybatis-plus 实战 Mybatis 项目 Spring

Spring Boot 3.0横空出世,快来看看是不是该升级了

简介 Spring boot 3.0于2022年11月正式发布了,这次的发布对于我们普通程序员的影响有多少呢?我们是不是需要考虑立马升级到Spring Boot3.0呢? 别急,看完这篇文章再来做决定也不迟。 对JAVA17和JAVA19的支持 相信很多小伙伴到现在还是使用得是JDK8,但是JDK8 ......
Spring Boot 3.0

Spring项目中用了这种解耦模式,经理对我刮目相看

前言 不知道大家在项目中有没有遇到过这样的场景,根据传入的类型,调用接口不同的实现类或者说服务,比如根据文件的类型使用 CSV解析器或者JSON解析器,在调用的客户端一般都是用if else去做判断,比如类型等于JSON,我就用JSON解析器,那如果新加一个类型的解析器,是不是调用的客户端还要修改呢 ......
解耦 刮目相看 中用 模式 经理

Typora + PicGo + B2 Cloud Storage 实现个人免费图床

前言 22年底终于购入了Typora,想着之前使用时候的痛点就是在图片管理这一块。 我尝试过使用在线的图床工具进行图片上传再将链接放入Typora,但说实话非常麻烦。 也尝试过就将图片保存在本地,但当我想将笔记上传到博客时就是一场灾难,需要将图片一张张上传并更改文章内的链接。 接着我了解了PicGo ......
Storage Typora PicGo Cloud 个人

Spring Cloud Alibaba组件之Nacos

目录结构: 一、Spring Cloud Alibaba简介 二、使用版本情况 三、什么是Nacos? 四、Nacos运行环境部署 五、Nacos注册中心 六、Nacos命名空间和分组 七、Nacos配置中心 八、基于profile多环境配置 九、Nacos配置中心动态刷新 十、Nacos数据持久化 ......
组件 Alibaba Spring Cloud Nacos

Spring Cloud Alibaba组件之Sentinel

目录 一 引入Sentinel学习 二 Sentinel入门 三 搭建Sentinel Dashboard 四 Springboot项目接入Sentinel 五 接入限流埋点 六 限流配置 七 熔断降级 八 熔断降级Spring Cloud示例 九 黑白名单(授权规则) 十 持久化 十一 Sprin ......
组件 Sentinel Alibaba Spring Cloud

从Spring中学到的【2】--容器类

容器类作为数据的载体,在Spring源码中随处可见。理解了容器类的概念,极大地8降低了我们的心智负担,从而关注更重要的代码逻辑与结构。 ......
容器 中学 Spring

Apache Dubbo 官方正式发布 Spring 6 & Spring Boot 3 支持

Dubbo 简介 Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现 ......
Spring 官方 Apache Dubbo Boot

从源码层面深度剖析Spring循环依赖

作者:郭艳红 以下举例皆针对单例模式讨论 图解参考 https://www.processon.com/view/link/60e3b0ae0e3e74200e2478ce 1、Spring 如何创建Bean? 对于单例Bean来说,在Spring容器整个生命周期内,有且只有一个对象。 Sprin ......
层面 源码 深度 Spring