Spring Boot
文章平均质量分 77
关于Spring Boot框架相关的技术文章
太空眼睛
80后Java程序员,已掌握Java技术栈:K8s、SpringBoot、SpringCloud、Gateway、Kong、Nginx、Dubbo、Liteflow、Nacos、Eureka、ZooKeeper、Mybatis、PostgreSQL、Mysql、Mongodb、Redis、ElasticSearch、RocketMQ、RabbitMQ、Netty、RestTemplate、LLM、ChatGLM系列、FunASR、TTS、DreamTalk、SadTalker、Jenkins等等。
工作近20年,接下来,希望通过博客的方式记录下来,分享不断学习、不断超越、不断积累的历程。
展开
-
【Actuator】基于SpringBoot3.3.x版本④可观测性增强
**可观测性**由CNCF组织提出,在云原生中提到一个词`Observerbility`,随着云原生的崛起,可观测性成了云原生时代的必备能力。加上谷歌、阿里、腾讯等互联网大厂的参与,**可观测性**逐渐从幕后走进寻常百姓家。那么,什么叫可观测性呢?用相对严谨的话来说,**可观测性指的是一种能力,是通过检查其输出来衡量系统内部状态的能⼒。这些输出体现内部系统状态的能力越强,可观测性也就越好。**由此可以看出,可观测性的核心价值就是排查故障。搞`IT`的都知道,这个世界上不存在没有`Bug`的系统,无论原创 2024-10-22 11:56:08 · 665 阅读 · 1 评论 -
【Springdoc-openapi】基于SpringBoot3.3.x版本③集成Springdoc
在微服务开发过程中,后端同学会写各种`API`,每写一个`API`,都需要相应的`API`文档,前端同学需要根据`API`文档进行开发、联调,其它后端同学也需要通过`API`文档了解系统设计以及方便排查问题。关于`API`文档的工具有很多,比如常用的`Swagger`、`Apifox`等等,本文主要介绍`Springdoc`开源库,它与`Spring Boot`框架体系的集成更显丝滑。本着"**最新**"原则,这篇文章依然采用最新版的`Spring Boot 3.3.4`,最新版`springdoc原创 2024-10-05 12:36:35 · 1077 阅读 · 0 评论 -
【Spring Security】基于SpringBoot3.3.4版本整合JWT的使用教程
Spring Boot框架版本在持续迭代中,Spring相关组件也在不断更新,JDK版本的发布频率也更加的频繁。做为一名持续学习的开发者,紧跟技术时代潮流,持续学习新技术,持续更新自己的技能储备,是往前冲锋的必备能力和品质。希望大家跟我一样,保持对技术的渴望,保持学习的激情,一起努力吧。JWT也是现在前后端分离主流的身份认证载体,在本文中,我们会循序渐进从Spring Boot框架起步,一步步整合JWT,使用RSA公钥、私钥对JWT进行签名和验签,一点点揭开Spring Security的神秘面纱。原创 2024-10-02 15:48:13 · 1505 阅读 · 2 评论 -
【Aspect】Spring之AOP介绍
within匹配指定类型。匹配指定类的任意方法,不能匹配接口。表达式模式:使用示例:this-匹配代理对象实例的类型,匹配在运行时对象的类型。target匹配目标对象实例的类型,匹配 AOP 被代理对象的类型。表达式模式:使用示例:三种表达式匹配范围如下:表达式匹配范围withinthistarget接口✘✔✔实现接口的类✔〇✔不实现接口的类✔✔✔args匹配方法参数类型和数量,参数类型可以为指定类型及其子类。原创 2024-07-27 14:58:48 · 433 阅读 · 0 评论 -
【Mybatis-Plus】PostgreSQL之JSONB自动映射对象
使用可以帮开发者自动处理json格式与java对象之间的映射关系,不需要每次手动做序列化和反序列化的工作了。如果使用的数据库有自己特有的字段类型,也可以自定义开发一个,达到自动转换的目的。原创 2024-07-18 09:39:57 · 557 阅读 · 0 评论 -
【Mybatis-Plus】根据自定义注解实现自动加解密
我们需要一个注解,只要实体类的属性加上这个注解,那么就对这个属性进行自动加解密/*** 加密字段*/原创 2024-06-16 17:32:50 · 1938 阅读 · 0 评论 -
【SkyWalking】启用apm-trace-ignore-plugin追踪忽略插件
使用Agent采集追踪数据的时候,想排除某些路径,比如等,这样可以减少上报的数据,也可以去除一些不必要的干扰数据。原创 2024-06-08 16:23:27 · 556 阅读 · 0 评论 -
【SkyWalking】使用PostgreSQL做存储&K8s部署
表格往右拖动,可以看到环境变量名称和默认值。Dockerfile核心内容如下。初始化PostgreSQL数据库。原创 2024-06-07 23:23:26 · 724 阅读 · 0 评论 -
【PowerJob】从源码编译到k8s部署
虽然PowerJob官方说支持JPA各种数据源,但在PG数据库的兼容性上,确实存在小问题,issue也有相关原理描述,官方采用的优雅方式并未真正解决问题,因为只解决了从@Lob字段读取的时候,自动建表的时候还是会生成oid类型。本文从0到1,从源码开始一步步解决编译、运行、部署过程中遇到的问题,并分享出来,希望对大家有所帮助。原创 2024-05-04 12:08:42 · 1276 阅读 · 2 评论 -
【Dubbo】默认hession2反序列化机制导致dubbo接口返回HashMap
虽然找到了问题的原因,也解决了问题,但依然有疑问,如果启动多次,有时候能正常转成Java对象,是一个随机的状态,感觉启动的时候决定了这个hessian2的类加载器遇到一些莫名其妙的问题时,不要慌,耐心的断点,分析代码查找问题的原因解决问题时,最好深刻理解源码的设计,利用原有框架的扩展性,进行问题的修复,这样的代码是最优雅的。原创 2023-12-20 19:43:25 · 774 阅读 · 0 评论 -
【Spring Cloud Kubernetes】使用k8s原生service实现服务注册和发现
在传统的微服务开发中,会借助Nacos注册中心,现在没有Nacos了,本地通过Fabric8,底层与k8s的API Server进行交互,获取集群内的资源信息。的注册与发现的问题,并且也实现了负载,我们在基于云原生开发微服务的时候,可以利用。写一个最简单的微服务,提供一个/hello接口,部署到k8s,这一步直接省略。现在微服务开发模式应用的越来越广泛,注册中心。也逐渐被其它注册中心产品替代,比如阿里出品的。提供了一套原生的支持子项目,那就是。随着云原生相关技术的普及,,这也是今天的主角。原创 2023-06-12 00:15:00 · 3765 阅读 · 2 评论 -
【SpringBoot 3.x】整合Mybatis-Plus多数据源、Druid
查看DruidDataSourceAutoConfigure这个类的源码可以看出,需要把@Import带进来的几个类进行自动装配。由于排除了DruidDataSourceAutoConfigure类的自动装载,就需要手工指定装配以下几个类。可以看到多数据源已经配置成功了,并且加入了Druid监控。等其它类上,也可以放在具体类个方法上。注解指定使用的数据源,也可以放在。SpringBoot启动类修改。默认访问primary数据源。指定使用second数据源。原创 2023-06-12 00:15:00 · 6727 阅读 · 0 评论 -
【SpringBoot 3.x】使用starter整合Druid
Druid是阿里巴巴的一个开源项目,号称为监控而生的数据库连接池,在功能、性能、扩展性方面都超过其他例如DBCPC3P0BoneCPProxool等连接池,而且Druid已经在阿里巴巴部署了超过600个应用,通过了极为严格的考验,这才收获了大家的青睐!原创 2023-06-12 00:15:00 · 13726 阅读 · 13 评论 -
【Spring Cloud Gateway】⑥SpringBoot3.x集成SpringDoc指南
开发依赖版本3.0.62022.0.2Spring Doc2.1.0JDK20。原创 2023-06-05 00:15:00 · 2905 阅读 · 0 评论 -
【SpringBoot】整合Mybatis-Plus并输出SQL日志
完全兼容Mybatis,如果项目曾经使用的是Mybatis,想要引入,是完成可以的,仅仅是在数据源的处理上有稍微细节的处理,本人在处理Mybatis和方面具有丰富经验,如有需要,欢迎交流!原创 2023-05-29 00:15:00 · 2239 阅读 · 0 评论 -
【Sentinel】流控、熔断、热点基本介绍和使用
开发依赖版本3.0.62022.0.2JDK20。原创 2023-05-24 14:32:32 · 646 阅读 · 0 评论 -
【SpringBoot】k8s部署使用actuator做健康检查
return;return;return;} }这么设置后,访问,发现无法访问,再检查目录,发现有一个的状态是,原来的规则是之前的默认为名称。如果是加入扫描的方式就是这样的,但我现在是用starter的方式进行发布的。如果我要实现访问怎么做呢?原创 2023-05-22 11:03:44 · 1737 阅读 · 0 评论 -
【MyBatis-Plus】代码生成器使用介绍和自定义设置
没有找到对应的开关配置,经过查看源码发现。类了,于是解决方案如下。设置为空,就不会生成。原创 2023-05-20 23:19:46 · 3472 阅读 · 1 评论 -
【Spring Security】根据请求路径判断当前登录用户是否拥有访问权限
开发依赖版本3.0.6功能很强大,对安全认证这一块提供了非常丰富的支持,篇幅有限,只是演示了非常基础的功能。相信通过这篇文章的介绍,可以帮助大家解决一定的困惑。本人对的研究非常深入,几乎翻看了底层所有的源码,熟悉运行的机制、原理,如果大家在使用的过程中遇到什么难题,欢迎进一步沟通、交流。原创 2023-05-13 13:06:57 · 1588 阅读 · 0 评论 -
【SpringBoot】最新版3.x集成springdoc代替Swagger
SpringBoot升级为3.x后,包javax下的所有内容都迁移到了jakarta下,比如, 而swagger还是使用的包javax, 导致出现不兼容的问题,因此可以使用springdoc来替代以前的swagger。原创 2023-04-29 23:22:29 · 1948 阅读 · 0 评论 -
【SpringBoot】获取HttpServletRequest的三种方式
获取共有三种方式Controller的方法增加参数自动注入建议使用继承来减少代码冗余通过手动获取适合在非Bean中获取。原创 2023-04-29 21:57:08 · 8892 阅读 · 0 评论 -
【Spring Security OAuth2 Client】基本介绍以及定制开发
开头的配置项可以参考这个类OAuth2协议响应的标准参数字段可以参考这个类重定向到,并且会携带client_idscopestatenonce参数和会对回调地址(携带了code和state)进行处理,调用进行认证背后会进行连续token-uri请求,最后返回完全填充的缓存跳转登录前的请求由于类是final,不能继承,所以我们创建一个,然后把源码copy过来,主要修改accessTokenType为空的情况@Override。原创 2023-04-29 13:01:56 · 7084 阅读 · 4 评论 -
Spring Boot 最新版3.x 集成 OAuth 2.0实现认证授权服务、第三方应用客户端以及资源服务
Spring Boot 3已经发布一段时间,网上关于Spring Boot 3的资料不是很多,本着对新技术的热情,学习和研究了大量Spring Boot 3新功能和新特性,感兴趣的同学可以参考Spring官方资料全面详细的新功能/新改进介绍新特性有很多,本文主要针对OAuth 2.0的集成,如果快速开发自己的认证授权服务、OAuth客户端以及资源服务新建三个服务,分别对应认证授权服务、OAuth客户端以及资源服务Spring发布了spring-security-oauth2-authorization-se原创 2023-02-05 13:38:51 · 19430 阅读 · 20 评论 -
Spring Cloud Gateway④自定义限流控制策略
以上文章演示了Gateway的部分功能的自定义开发,API网关还承担了流量入口的角色,为了保护后端微服务不被高峰流量冲垮,API网关可以进行限流、熔断、降级处理。熔断、降级有Hystrix等组件支持,限流策略也有RequestRateLimiter,我们这篇文章主要演示如何自定义限流策略,学会了自定义限流后,就可以开发更多满足自己业务需求的功能了。本文继续接着上一篇文章往下讲,代码和配置都是接着上一篇,如有看不懂的地方可以把前面关于Gateway的内容过目一下。这个过滤器可以根据每秒请求次数进行限制,超过原创 2022-07-09 16:57:51 · 2414 阅读 · 0 评论 -
Spring Cloud Gateway③编码实现动态增加、修改、删除路由
以上文章演示了Gateway的部分功能的自定义开发,我们在实际业务中,很多转发的路由并不是通过配置文件提前配置好的,可能是通过配置中心获取并且会动态变化,新开发好的API需要挂到API网关上,希望通过仅修改配置解决,API网关不需要重启,那么我们就需要基于Gateway动态增加、修改、删除路由的能力。本文继续接着上一篇文章往下讲,代码和配置都是接着上一篇,如有看不懂的地方可以把前面关于Gateway的内容过目一下。代码新增了一条新的路由转发规则,把转发到在浏览器输入出现以上图片内容,表示成功转发。在配原创 2022-07-09 14:37:31 · 2503 阅读 · 0 评论 -
Spring Cloud Gateway②聚合Swagger
各个微服务都有自己的Swagger文档,当使用Gateway做为微服务统一入口时,如何对外统一暴露微服务的Swagger呢?这篇文章继续演示Gateway聚合各个微服务的Swagger的能力,以最小依赖为原则,不依赖注册中心,以便聚焦如何展示Swagger这部分的功能。微服务需要提供Swagger开启Swaggerapplication.yml如下运行main函数启动微服务访问微服务Swagger在浏览器输入说明这个微服务的Swagger已经正常开启了如果还不熟悉Gateway的可以参考原创 2022-07-08 15:57:40 · 2096 阅读 · 0 评论 -
Spring Cloud Gateway①入门以及自定义过滤器开发
转发配置示例以下是一个简单的转发的配置,把的请求转发到Spring Boot启动类程序启动程序启动后输出以下日志,说明程序启动成功浏览器访问在浏览器地址栏输入Spring Cloud Gateway内置了多种过滤器,我们示例中演示了StripPrefix过滤器的使用,把原始请求截断了,这样转发到时才不会出现404错误Spring Cloud Gateway虽然自带有许多实用的GatewayFilter Factory、Gateway Filter、Global Filter,但是在很多业务情原创 2022-07-07 16:24:49 · 923 阅读 · 0 评论 -
Spring Boot打包成fatjar启动参数设置
目录Spring Boot打包成fatjar启动参数设置Spring Boot配置文件加载顺序Spring Boot默认加载配置文件的顺序指定Spring Boot配置文件路径Spring Boot激活配置Spring Boot打包成fatjar启动参数设置我们越来越多的使用Spring Boot框架进行开发,开发好的服务通过会使用如下插件进行打包<plugin> <groupId>org.springframework.boot</groupId>原创 2022-05-22 06:00:00 · 550 阅读 · 0 评论 -
Spring Cloud Gateway⑤令牌桶算法
目录官网对**Spring Cloud Gateway**的介绍maven依赖核心依赖Redis依赖yml配置项令牌桶算法核心参数解析源码分析官网对Spring Cloud Gateway的介绍Spring Cloud Gatewaymaven依赖核心依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId原创 2022-04-30 17:11:17 · 2488 阅读 · 0 评论 -
SpringBoot集成nacos配置中心
目录本文开发环境介绍nacos配置中心修改bootstrap.yml配置nacosData ID配置界面与SpringBoot配置文件对应SpringBoot获取nacos配置本文开发环境介绍开发依赖版本Spring Boot2.6.6Spring Cloud2021.0.1Spring Cloud Alibaba2021.0.1.0spring-cloud-alibaba-nacos-discovery2.2.0.RELEASEnacos配置中心n原创 2022-04-10 10:14:49 · 8378 阅读 · 0 评论 -
springboot发布dubbo服务注册到nacos
dubbo注册服务到nacos的pom依赖原创 2022-04-10 08:00:00 · 8947 阅读 · 1 评论 -
jdk17启动报错Failed to create adaptive instance
Failed to create adaptive instance: java.lang.IllegalStateException: Can't create adaptive extension interface org.apache.dubbo.rpc.Protocol, cause: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],in原创 2022-04-09 00:30:41 · 4252 阅读 · 5 评论 -
redis初学者常见字符乱码问题及解决办法
目录本文开发环境介绍pom.xml依赖redis保存数据后出现\xac\xed\x00\x05t\x00的问题测试代码查看写入redis的数据解决办法写一个带有效期的数据本文开发环境介绍开发依赖版本Spring Boot2.6.6pom.xml依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId>原创 2022-04-07 23:59:33 · 5056 阅读 · 0 评论 -
SpringBoot启动debug级别日志报错Tomcat Native library could not be found using names [tcnative-1, libtcnative
SpringBoot启动debug级别日志报错Tomcat Native library could not be found using names [tcnative-1, libtcnative-1]错误截图原因tomcat没有找到JNI动态链接库。Apache Tomcat下是有这个dll的,但是启动时在Springboot中内嵌Tomcat下没有找到。这是因为Tomcat中的connector为了提高性能,采用了加载与操作系统绑定(非跨平台)的本地库的方式,比如Windows系统中就是.d原创 2022-04-06 23:12:20 · 1859 阅读 · 0 评论 -
SpringBoot集成nacos注册中心以及Feign调用服务
目录本文开发环境介绍nacos能做什么如何让bootstrap.yml生效nocos注册中心bootstrap.yml最小配置nacos server开启认证鉴权注册rest服务以及消费服务生产者提供一个rest服务消费端消费端pom.xml消费端bootstrap.yml消费端Feign消费端Controller测试验证总结本文开发环境介绍开发依赖版本Spring Boot2.6.6Spring Cloud2021.0.1Spring Cloud Alibaba2原创 2022-04-05 16:51:02 · 2163 阅读 · 2 评论 -
SpringBoot应用如何以优雅的方式对接老旧SSO实现单点登录逻辑
我们现在开发WEB应用最流行的框架就是**SpringBoot**,开发好的应用程序经常要接入企业内部的**SSO**系统,因为现在企业里面基本上都有自己的一套统一认证服务,企业开发的各个业务系统都对接这个统一认证服务,那么就可以实现企业内部的单点登录了。统一认证服务经常也叫做**SSO**,有些**SSO**是很久以前开发的比较老旧,接入的方式可能也是利用浏览器的**Session**和**Cookie**来实现。但是现在流行前后端分离,并且随着**JWT**的发展,前后端的交互更多喜欢采用**JWT原创 2022-04-03 19:10:02 · 6751 阅读 · 0 评论 -
Spring Security前后端分离最佳实践(登录+JWT)
目录Spring Security前后端分离最佳实践(登录+JWT)开发环境jar包依赖Spring Security配置继承WebSecurityConfigurerAdapter登录过滤器LoginAuthenticationFiltertoken校验过滤器JwtTokenAuthenticationFilter**main()**函数启动类测试验证总结Spring Security前后端分离最佳实践(登录+JWT)现在前后端分离的Web应用越来越流行,后端提供一系列API,前端通过调用这些API原创 2022-03-31 23:51:28 · 2038 阅读 · 2 评论 -
SpringBoot零基础集成xxl-job
目录`SpringBoot`零基础集成`xxl-job``xxl-job-admin`部署部署`SpringBoot`示例`xxl-job-executor-sample-springboot`分析执行日志原理示例程序中的代码位置`@XxlJob`注解的使用总结SpringBoot零基础集成xxl-jobxxl-job主要分成两部分:一部分是xxl-job-admin。这是管理控制台,简单理解就是用于管理和调度任务。另一部分是xxl-job-core。这主要是帮助开发人员更高效的开发具体的任务,然原创 2022-03-27 13:50:27 · 1932 阅读 · 0 评论 -
Spring Cloud Feign之全局异常处理
目录Spring Cloud Feign之全局异常处理方式一方式二源码分析Spring Cloud Feign之全局异常处理方式一在@FeignClient中指定configuration属性,可以在这个configuration中构造一个ErrorDecoder,但这只能对一个@FeignClient生效,如果不想为每一个@FeignClient都手工去指定一个ErrorDecoder,则推荐使用方式二方式二spring-cloud-openfeign-core-${version}.jar在这原创 2022-01-19 13:59:30 · 2718 阅读 · 4 评论