框架-spring boot
文章平均质量分 73
spring-boot、Spring Cloud以及spring-framework的源码解析,以及遇到的问题,这个是主攻的源码解读专栏之一,以后会持续更新,不喜勿定,自己的笔记
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
九师兄
可免费问问题,可以一次订阅,终身免费问问题。工作多年遇到的问题,与一些总结,注意事项等,有些是源码级别的讲解,同时整个博客是成体系的,里面有很多连接互相连接,问题都是拆开的,能让大家遇到问题的时候方便的解决问题,或者提供思路。也可以单独找我解决问题。
展开
-
【Spring】Spring的依赖注入为什么不支持static属性
在Spring框架中,依赖注入(Dependency Injection,DI)主要是通过将依赖对象作为实例变量注入到目标对象中实现的。这种方式对于实例特定的属性非常有效,但是并不适用于static属性。static属性是属于类本身的,而不是类的实例。它们在整个应用程序中只有一个实例,与特定的对象实例无关。由于依赖注入是基于对象实例级别的,而不是类级别的,所以Spring的依赖注入机制不直接支持注入到static属性中。此外,static属性的生命周期与对象实例不同。原创 2024-09-21 00:30:00 · 7 阅读 · 0 评论 -
【Spring】Spring Boot No active profile set, falling back to default profiles: default
我们一个经常运行的Spring Boot项目,今天突然报错因为我们这个项目以前一直运行,所以没有怀疑是包的问题,怀疑是缓存导致的。因此我清理缓存,或者重启IDEA都不行,然后到处搜索,发现都不是我的问题。大部分人都说是加入下依赖原创 2024-09-21 00:15:00 · 8 阅读 · 0 评论 -
【Spring】如何对SpringBoot接口返回数据进行脱敏
本章主要讲解如何对SpringBoot接口返回数据进行脱敏,这里我们使用糊涂工具包来做。这里我们主要使用注解来做这个事情,显得更加高级一点,嘿嘿嘿。原创 2024-09-19 00:30:00 · 22 阅读 · 0 评论 -
【Spring】如何理解SpringBoot中关于请求、连接的几个参数?
我们本章节主要讲解SpringBoot中关于请求、连接的几个参数,参数如下。原创 2024-09-19 00:15:00 · 96 阅读 · 0 评论 -
【Spring】Spring如何控制bean的初始化顺序
我们有些情况下需要控制Spring的初始化顺序,比如第一个Bean依赖第二个Bean,此时我们就需要控制Spring Bean的初始化顺序。极端情况下,我们的bean依赖顺序可能如下这时候我们该怎么做呢?原创 2024-09-18 00:30:00 · 237 阅读 · 0 评论 -
【Spring】Spring的jar为什么可以直接运行
还记得我们以前怎么运行起来一个web的包吗?我们以前是把包打成一个war包,然后去运行。还记得我们有时候会遇到的错误吗?为什么我们根据这个里面的加了一个插件就可以运行了呢?这个插件为我们做了什么呢?其实我们加了插件已经,Spring Boot应用打包之后,生成一个Fat jardar包中包含jar),包含了应用依赖的jar包和Spring Boot loader相关的类。我们可以解压一个试试,可以看到里面包含了依赖的包。原创 2024-09-15 00:30:00 · 142 阅读 · 0 评论 -
【Spring】Spring中@Component和@Bean的区别?
总的来说,@Component注解适用于声明普通组件,并通过自动装配进行依赖注入;而@Bean注解适用于在配置类中声明复杂的Bean,并提供更细粒度的配置和灵活性。在实际使用中,根据需求和场景选择合适的注解来声明和配置Spring组件。在Spring框架中,@Component和@Bean是两个常用的注解,用于实现组件的声明和配置。原创 2024-09-14 00:30:00 · 131 阅读 · 0 评论 -
【Spring】为什么有些公司禁止使用@Transactional声明式事务?
如果一个方法中存在较多耗时的操作,很容易引发长事务的问题,长事务会带来锁的竞争和性能的消耗,同时也会导致数据库连接池耗尽,影响程序的正常执行。嵌套调用混乱:如果方法存在嵌套调用,子方法也加了@Transactional声明式事务,这时候就出现了事务嵌套的行为,。@Transactional声明式事务是将事务控制逻辑放在注解里面,如果项目中的复杂度增加,事务的控制可能变的更加复杂。导致代码的可读性和维护性下降。原创 2024-09-14 00:15:00 · 42 阅读 · 0 评论 -
【Spring】Spring中有哪些方式能把Bean注入IOC容器中
使用第三方库扩展方式:Spring 支持使用第三方库,如 MyBatis、Hibernate 等,通过配置适配器或相关设置,将这些第三方库所创建的对象注入到 IOC 容器中。注解,指定要自动扫描的包路径,Spring 将自动扫描该包及其子包下的所有带有特定注解的类,并将其注册为 Bean。注解的类,通过 @Bean 注解定义 Bean,同时在配置类中使用。Java 配置方式:使用基于 Java 的配置类,如使用。注解方式:通过在 Bean 类上使用注解,如。自动扫描方式:通过在配置类上使用。原创 2024-09-13 00:15:00 · 156 阅读 · 0 评论 -
【Spring3】Spring boot 3新特性介绍
11月24号,Spring Boot 3.0 发布了第一个正式的GA 版本。截止目前Sprina Boot 3.1 GA也已更新,一起看看新版本到底有哪此变化Spring boot 3 默认引用的是 Spring 6 版本。Spring Boot 3.0 使用Java 17作为最低版本,如果你目前使用的是Java 8或 Java 11,那么需要升级先升级 JDK,并且新版本已通过 JDK 19 进行了测试。原创 2024-08-05 00:15:00 · 391 阅读 · 0 评论 -
【IDEA】SpringBoot使用EasyYapi对代码实现API接口一键发布到YApi
EasyYapi是什么?官网的介绍。EasyYapi是一款Idea插件,帮你导出API到YApi、postman、markdown。EasyYapi特色EasyYapi优势(1)基于javadoc&KDoc&ScalaDoc解析API文档(2)你可以在保持代码零侵入的情况下得到相当完整的api文档, 但是特殊的需求还是需要部分特殊的注释/注解配合(3)与之相对的是, 你可以灵活的运用配置规则来适应你的项目特性以减少代码侵入.原创 2024-08-02 00:30:00 · 222 阅读 · 0 评论 -
【Spring】SpringBoot项目启动时间从7分钟降到了40秒!
转载这篇文章是因为,我恰巧也在做这个优化,我的程序原本启动时间也是5分钟以上,然后优化后速度降低到30秒启动成功。先看看别人怎么做的。原创 2024-08-01 00:30:00 · 150 阅读 · 0 评论 -
【Spring】Spring 多线程事务怎么回滚、可以使用 @Transactional吗?
1,最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败,则全部回滚。2,在spring中可以使用@Transactional注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效,如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程修改的数据则不会回滚,导致数据错误。3,下面用一个简单示例演示多线程事务。原创 2024-07-30 00:30:00 · 106 阅读 · 1 评论 -
【Spring】常见 Bean 映射框架概览
在我们实际项目开发过程中,我们经常需要将不同的两个对象实例进行属性复制,从而基于源对象的属性信息进行后续操作,而不改变源对象的属性信息,比如DTO数据传输对象和数据对象DO,我们需要将DO对象进行属性复制到DTO,但是对象格式又不一样,所以我们需要编写映射代码将对象中的属性值从一种类型转换成另一种类型。在Java中,除了基本数据类型之外,还存在类的实例对象。原创 2024-07-28 00:30:00 · 133 阅读 · 0 评论 -
【Spring】AopConfigException Unexpected AOP exception Unable to load cache item
今天想做一个MyIbatis plugs相关的项目,然后运行报错详情报错信息如下我的maven配置如下首先定义了一个实体类如下然后定义了service然后定义了实现类然后定义一个mapper然后定义了这个xml查询然后定义了配置加载最后主类如下。原创 2024-07-27 00:15:00 · 181 阅读 · 0 评论 -
【Spring】Spring 自定义 Validator 注解实现数据校验
本章节主要想使用注解失效Validator数据校验。原创 2024-07-17 00:30:00 · 233 阅读 · 0 评论 -
【Spring】Spring Boot 集成 Zookeeper 结合AOP实现分布式锁
此 demo 主要演示了如何使用 Spring Boot 集成 Zookeeper 结合AOP实现分布式锁。原创 2024-07-16 00:15:00 · 179 阅读 · 0 评论 -
【Spring】Spring 是怎么通过 Java 注解方式来实现 Web 和 Mvc、SpringServletContainerInitializer、
*** ①:1、创建Mvc初始化类,需要继承AbstractAnnotationConfigDispatcherServletInitializer类/*** springmvc容器的父容器spring配置类* 实际工作中我们的项目比较复杂,可以将controller层放在springmvc容器中* 其他层,如service层、dao层放在父容器了,bean管理起来更清晰一些* 也可以没有父容器,将所有bean都放在springmvc容器中* @return} /**原创 2024-07-14 00:30:00 · 307 阅读 · 0 评论 -
【Spring】SpringBoot接收文件和对象
最近有个需求是写个接口,上传文件的时候,传递参数,然后因为好久没有对接前端了,一时间不知道怎么处理。使用场景:某个接口,需要同时接收文件和实体,也就是参数这个时候,前端就不能json格式传送数据了,要用到这种格式传送数据。那么,这个时候,后端应该怎样接收这个参数和文件呢?原创 2024-07-10 00:45:00 · 382 阅读 · 0 评论 -
【Spring】WebClient之请求头设置、超时设置
本项目借助SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA进行开发使用WebClient,最主要的引入依赖如下(省略掉了SpringBoot的相关依赖,如对于如何创建SpringBoot项目不太清楚的小伙伴,可以关注一下我之前的博文)原创 2024-07-08 00:15:00 · 370 阅读 · 0 评论 -
【Spring】AsyncRestTemplate之异步非阻塞网络请求
AsyncRestTemplate发起异步网络请求,由Spring4.0引入,但是在5.0就被表上了删除注解,官方推荐使用基于React的WebClient来代替。虽然官方已经不推荐使用AsyncRestTemplate,但是如果你的web项目,并不想引入react相关的包,使用AsyncRestTemplate来实现异步网络请求也不失为一个选择,本文将主要介绍它的基本使用姿势。原创 2024-07-07 00:15:00 · 75 阅读 · 0 评论 -
【Spring】RestTemplate之超时设置
一般来讲我们访问外部资源时,需要做一个保护,比如最常见的添加一个超时设置,避免一直被阻塞,RestTemplate可以通过SimpleClientHttpRequestFactory来处理超时设置。原创 2024-07-06 00:15:00 · 1072 阅读 · 0 评论 -
【Spring】Spring使用Nacos进行远程调用、出现Method Not Allowed 排查案例
今天写RPC调用遇到一个问题,然后一时间不知道怎么排查,最后和别人一起排查逐渐梳理清楚,本次主要是记录排查过程下一次知道怎么排查。再后来忘记在哪看到日志有post,然后我明明是get调用,但是报错post,然后再看看接口,最后发现原因。先手动执行 curl -X GET 调用这个地址发现报错。后来打了debug日志,日志信息如下。然后设置的接口信息如下,全路径是。然后调用的时候就报错了。然后RPC接口定义如下。原创 2024-07-05 00:45:00 · 159 阅读 · 0 评论 -
【Spring】exclude= {DataSourceAutoConfiguration.class} 失效 解决方案
但是启动的时候仍然报错,有的人引入了这个druid,那么druid-spring-boot-starter 会再次扫描数据源。你需要排除这个DruidDataSourceAutoConfigure,但是我的没有。我有个Spring 程序,然后运行的时候,不想连接数据库,但是总是报错。这个居然是parent引入的。对应的maven设置如下。原创 2024-06-30 01:00:00 · 354 阅读 · 0 评论 -
【Spring】上传文件的同时加参数报错 Content type multipart/form-data;boundary not supported
去掉@RequestBody注解就行了。原创 2024-06-29 00:45:00 · 202 阅读 · 0 评论 -
【Spring】Spring mybatis 驼峰自动转换
在数据库中,由于大多数数据库设置不区分大小写 ,因此下画线方式的命名很常见,如user_name、user_email。在 Java 中,一般都使用驼峰式命名,如 userName、userEmail因为数据库和 Java 中的这两种命名方式很常见,因此 MyBatis 还提供一个全局属性mapUnderscoreToCamelCase ,通过配置这个属性为 true 可以自动将以下画线方式命名的数据库列映射到 Java 对象的驼峰式命名属性中。原创 2024-06-21 00:45:00 · 138 阅读 · 0 评论 -
【swagger】swagger 怎么注解 对象类型的参数
如果请求参数为某个对象,还需要在swagger里显示出注释第一步:在对象的类上加注解@ApiModel,类的字段上加注解第二步:controller类里直接使用,json接收(如果是想表单提交,则用第三步(可选):如果不想展示某些字段在swagger上,需要在字段上加上注解。原创 2024-06-03 00:30:00 · 373 阅读 · 0 评论 -
【Spring】Expected lookupPath in request attribute springframework UrlPathHelper PATH
或者降低版本,如使用2.5.4版本。原创 2024-05-22 00:30:00 · 377 阅读 · 0 评论 -
【Spring】Spring boot 方法中异步执行耗时操作
我有个需求,我前端调用一个接口,然后A调用B,然后B执行C,C代表的是一个复杂的计算,然后我想的是把这个放到异步里面执行,运行的时候,B执行C是瞬间的,然后会执行E,E执行的也很快,执行完毕后,直接返回给前端了,然后D在后端默默执行D的执行实现,我开始用CompletableFuture包裹,然后发现如果E执行完毕后,返回 D还没执行完的话,会直接结束,我想让他继续执行。原创 2024-05-11 00:30:00 · 99 阅读 · 0 评论 -
Spring : 连接池-HikariCP
Hikari是一款非常强大,高效,并且号称“史上最快连接池”。并且在springboot2.0之后,采用的默认数据库连接池就是Hikari。不需要引入依赖,已经在SpringBoot中包含了。HikariCP 号称是 Java 业界最快的数据库连接池,官⽹网提供了 c3p0、 dbcp2、 tomcat、 vibur 和 Hikari 等数据连接池的性能对⽐。GitHub地址:https://github.com/brettwooldridge/HikariCP。原创 2019-12-31 08:48:20 · 864 阅读 · 1 评论 -
【Nacos】Nacos报错Request nacos server failed 或者 Client not connected,current status:STARTING
然后我本地连接服务器,进行测试,但是报错。无论怎么尝试都是报错,而且界面是能访问的。我有个docker容器的环境总是报错。我再次映射9848端口就好了。原创 2024-01-24 20:18:39 · 2581 阅读 · 0 评论 -
【Spring】Spring AOP 结合 Redis + Lua 脚本实现分布式限流
此 demo 主要演示了 Spring Boot 项目如何通过 AOP 结合 Redis + Lua 脚本实现分布式限流,旨在保护 API 被恶意频繁访问的问题,是的升级版。原创 2023-12-11 13:15:21 · 996 阅读 · 0 评论 -
【Spring】Spring AOP 结合 Guava 的 RateLimiter 实现限流
* 限流注解,添加了 {@link AliasFor} 必须通过 {@link AnnotationUtils} 获取,才会生效*原创 2023-12-09 16:41:18 · 1053 阅读 · 0 评论 -
【Nacos】Nacos配置更新的工作流程?
Nacos客户端需要获取服务端的一个变更的配置,前提是需要一个比较,也就是说拿客户端本地的配置信息和服务端的配置信息进行比较,一旦发现和服务器的配置有差异,那么就表示服务端的配置有更新,于是需要把变更的配置拉取到本地。第一个阶段:客户端把这3000个配置的key以及对应的value值的md5拼接成一个字符串,然后发送到Nacos Server端进行判断,服务端会逐个比较这些配置中md5不同的key,把存在更新的key返回给客户端。Nacos采用的是一个长轮训的方式向NacosServer发起配置更新。原创 2023-11-16 23:30:00 · 186 阅读 · 0 评论 -
【Spring】@Value读取properties中文乱码解决方案
今天遇到@value()读取配置文件信息,中文乱码。转载 2023-10-26 23:15:00 · 1249 阅读 · 0 评论 -
【Spring】Spring 在多线程环境下如何确保事务一致性
转载:Spring 在多线程环境下如何确保事务一致性 问题在现我先把问题抛出来,大家就明白本文目的在于解决什么样的业务痛点了:如果我希望将步骤1和步骤2并行执行,然后确保步骤1和步骤2执行成功后,再执行步骤3,等到步骤3执行完毕后,再提交全部事务,这个需求该如何实现呢?上面需求第一点是: 如何让任务异步并行执行,如何实现二元依赖呢?说到异步执行,很多小伙伴首先想到Spring中提供的@Async注解,但是Spring提供的异步执行任务能力并不足以解决我们当前的需求。@Async注解原理简单来说,就是扫描I转载 2023-09-29 10:31:51 · 585 阅读 · 0 评论 -
【Spring】Spring RequestBody 实体类 自动注入参数 驼峰法 与 lombok 冲突导致 无法注入
今天遇到一个问题,一个spring 的controller方法使用RequestBody方法来注解参数,然后使用实体类来接受参数,但是发现无法注入。对应的方法设置如下然后界面传参如下,可以看到相关的参数没有注入进去实体类的参数设置如下,经过排查发现是一模一样的。但是就是无法注入,后来怀疑是我这个字段比较特殊,自动注入的时候,可能找不到,因为我第一个字符是小写第二个是大写,众所周知,。因此我怀疑界面传参的tAnalyse注入的时候,会找方法方法或者方法,但是现在明显看到是不可以的。原创 2023-08-26 19:07:29 · 460 阅读 · 0 评论 -
【Spring】RestTemplate访问https
今天要对接华为的环境,然后我们要使用https连接对方的yarn环境,对方的访问地址如下而且要输入用户名个密码。原先我们这个代码是访问的http,然后需要输入用户名和秘密,但是没有支持https.//该url上携带用户名密码是httpbin网站测试接口的要求, //真实的业务是不需要在url上体现basic auth用户名密码的 String url = "http://www.httpbin.org/basic-auth/admin/adminpwd";原创 2023-04-27 22:09:39 · 421 阅读 · 0 评论 -
【Spring】Spring 网络原因导致日志下载失败
然后开始写这个功能的人查询的时候,说是没有scp命令。然后我也没查,就想下载安装一个试试,结果我在上面执行命令发现有这个。我的Spring boot项目有个功能是下载Flink 的yarn日志,大概代码是读取本地文件,代码如下。然后后面发现小文件能下载 500kb以下的能下载,500KB以上的下载失败。最后定位是write的时候报错了。然后查看控制台发现接口报错。那么说明不是这个导致的。然后该大一些还是这样报错。后来发现接口返回这个。最后怀疑是网络原因。原创 2022-11-03 10:58:33 · 212 阅读 · 0 评论 -
【Spring】ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 问题解决
本质原因都是响应数据不完整导致,排查针对这个去就行,包括前端后端所有都有可能导致,常见的应该是数据配置限制了。转载 2022-11-03 10:57:46 · 2648 阅读 · 0 评论