
spring boot
文章平均质量分 83
spring boot
yygr
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring之@Transactional源码解析
我们在日常开发的时候经常会用到组合注解,比如:@EnableTransactionManagement + @今天我们就来抽丝剥茧,揭开@Transactional注解的神秘面纱BeanPostProcessor从本质上说,它也是一个bean,不过它优先实例化,然后作用于普通bean。比如我们耳熟能详的属性注入、动态代理,都是BeanPostProcessor在不同阶段对普通bean进行的处理。相关博文 :Spring之BeanPostProcessor。转载 2024-08-16 10:29:26 · 181 阅读 · 0 评论 -
spring @EnableXXX 注解是如何被扫描解析的?
这几天项目中用到Apollo,顺便看一下源码,然后看到Apollo再Spring中注册配置的类,里面大致就是注册了一堆processor然后这个是通过注解去Import的那这个是通过什么加载到Spring中的呢,然后我就在IDEA中搜了一下,发现并没有任何地方用到了这个注解,这就让我很奇怪了然后我去翻了下注解的代码,然后就在注解中找到了如下的注释总结下来就一句话,就是Spring会自动加载@Enable*的注解起到初始化配置的作用。转载 2024-07-26 14:15:12 · 128 阅读 · 0 评论 -
Springboot使用异步请求提高系统的吞吐量详解
在我们的实际生产中,常常会遇到下面的这种情况,某个请求非常耗时(大约5s返回),当大量的访问该请求的时候,再请求其他服务时,会造成没有连接使用的情况,造成这种现象的主要原因是,我们的容器(tomcat)中线程的数量是一定的,例如500个,当这500个线程都用来请求服务的时候,再有请求进来,就没有多余的连接可用了,只能拒绝连接。转载 2024-07-25 11:14:19 · 122 阅读 · 0 评论 -
SpringBoot异步接口实现:提高系统的吞吐量
Servlet 3.0之前:每一次Http请求都由一个线程从头到尾处理。Servlet 3.0之后,提供了异步处理请求:可以先释放容器分配给请求的线程与相关资源,减轻系统负担,从而增加服务的吞吐量。Callable第一中AsyncContext是Servlet层级的,比较原生的方式,本文不对此介绍(一般都不使用它,太麻烦了)。本文着重介绍后面三种方式。特别说明:服务端的异步或同步对于客户端而言是不可见的。不会因为服务端使用了异步,接口的结果就和同步不一样了。转载 2024-07-25 11:12:47 · 143 阅读 · 0 评论 -
springboot factory文件 spring.factory文件的作用
SPI 的全名为 Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。简单的总结下 java SPI 机制的思想。我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。转载 2024-07-24 09:50:35 · 585 阅读 · 0 评论 -
SpringBoot -- 事件(Application Event)
https://www.cnblogs.com/gdwkong/p/9309459.html Spring的事件为Bean与Bean之间的消息通信提供了支持,当一个Bean处理完一个任务之后,希望另外一个Bean知道并能做相应的处理,这时我们就需要让一个Bean监听当前Bean所发送的事件。 Spring的事件需要遵循如下流程:自定义事件,集成ApplicationEvent。 定义事件监听器,实现ApplicationListener。 使用容器发布事件。一、自定义事件p.转载 2022-05-26 16:46:00 · 818 阅读 · 0 评论 -
springboot整合rabbitmq集群配置项详解
https://blog.csdn.net/qq_45491757/article/details/105712530springboot整合rabbitmq集群创建方式这里省略 整合开始 1 引入starter<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>...转载 2022-05-14 09:17:39 · 7244 阅读 · 0 评论 -
spring-data-jpa原理探秘(2)-RepositoryQuery的用途和分类
https://blog.csdn.net/gaolu/article/details/53933151?spm=1001.2014.3001.5502本系列的第二篇文章,主要讲解在spring-data-jpa中占有重要地位的RepositoryQuery接口的用途和分类。首先我们看看RepositoryQuery接口极其子类的类图上图很清晰的说明,RepositoryQuery接口包含SimpleJpaQuery,NativeJpaQuery,PartTreeJpaQuery,NamedQu转载 2022-05-10 10:26:05 · 782 阅读 · 0 评论 -
Spring Boot Jpa使用Sharding Jdbc实现分布式事务-两阶段提交-XA
1. 引入Maven依赖Spring Boot用的2.3.0.RELEASE版本<dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId> <version>5.0.0-alpha</version>&原创 2022-05-04 21:30:02 · 1372 阅读 · 0 评论 -
ShardingSphere应用专题--4.1.1版本--Sharding-JDBC 字段加密之已上线业务加密(十)
https://blog.csdn.net/qq_31457665/article/details/115325042前言1.基础的环境介绍请移步ShardingSphere应用专题–4.1.1版本–sharding jdbc环境搭建(四)你可以同时打开两个页面,避免因查找原始配置上下翻动。2.ShardingSphere官方文档更新不及时,很容易踩坑。贴出的4.x版本文档实际是4.0.1版本的,如果你准备使用该版本可以参考官方文档。本文使用的是此时最新的正式版本4.1.1版本,配置与官方转载 2022-05-02 17:04:58 · 1004 阅读 · 0 评论 -
SPI 机制详解
https://cloud.tencent.com/developer/article/1830990代码不多,文章可能有点长。朋友面试某厂问到的 SPI 机制,联想到自己项目最近写到的 SPI 场景,文章简要描述下 SPI 机制的发展历程产出背景因为最近项目中使用分库分表以及数据加密使用到了 ShardingSphere,所以决定这段时间看看源码实现。问我为什么要读源码?不看源码怎么提高逼格嘞,就是这么朴实无华~考虑到自己看微信文章的习惯,不喜欢代码太多的,看着逻辑有点不清晰。所以,以转载 2022-05-02 15:54:31 · 776 阅读 · 0 评论 -
ShardingException: Cannot find data source in sharding rule, invalid actual data node is
https://blog.csdn.net/qq_39846820/article/details/108016846?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2转载 2022-05-01 16:51:14 · 3354 阅读 · 0 评论 -
ShardingSphere-JDBC入门实战
http://www.manongjc.com/detail/23-ucugqdghzuagktz.html前言Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成;接下来的几篇文章将重点分析ShardingSphere-JDBC,从数据分片,分布式主键,分布式事务,读写分离,弹性伸缩等几个方面来介绍。简介ShardingSphere转载 2022-05-01 14:29:06 · 1183 阅读 · 0 评论 -
MySQL-SpringBoot集成JPA实现数据读写分离
https://blog.csdn.net/Anbang713/article/details/83240353在上篇博客《MySQL-主从复制之同步主从数据》中,我们实现了读库和写库的数据同步。今天,我们继续学习SpringBoot集成JPA如何实现数据读写分离。废话不多话直接上代码。一、配置数据源1. # 数据源2. spring.datasource.druid.write.url=jdbc:mysql://localhost:3380/test3. spring.data转载 2022-04-27 16:41:05 · 1741 阅读 · 1 评论 -
读写分离很难吗?springboot结合aop简单就实现了
https://www.cnblogs.com/yeya/p/11936239.html目录前言 环境部署 开始项目 目录结构 建表 主从数据源配置 设置路由 数据源的注解 aop切换数据源 注意 參考:前言入职新公司到现在也有一个月了,完成了手头的工作,前几天终于有时间研究下公司旧项目的代码。在研究代码的过程中,发现项目里用到了Spring Aop来实现数据库的读写分离,本着自己爱学习(我自己都不信...)的性格,决定写个实例工程来实现spring转载 2022-04-28 09:23:09 · 134 阅读 · 0 评论 -
JUnit 5 测试 Spring 引擎的时候提示 junit-vintage 错误
https://blog.csdn.net/huyuchengus/article/details/108975242在 Spring 项目中运行测试的时候,得到错误:TestEngine with ID 'junit-vintage' failed to discover tests” with Spring这个错误的原因是 JUnit 的引擎,使用了 junit-vintage 引擎。junit-vintage 是 Junit 4 中使用的引擎,如果你的项目使用了 Junit 5转载 2022-04-26 13:26:53 · 1569 阅读 · 1 评论 -
springboot jpa多Repository(数据源)及读写分离
https://www.imooc.com/article/27146为了解决数据库瓶颈,分散数据库压力,读写分离经常被使用到。接下来我们就来谈一谈,在spring boot 中如何使用jpa进行读写分离。本文提供示例源码。在只有一个数据源的时候,我们可以很简单的使用有关JPA的自动配置来完成数据库操作。但是读写分离的时候显然我们至少要两个DataSource了,那么这些都是需要我们手动配置了,因为自动配置代码都是使用了条件注解的,我们手动配置之后就不再帮我们自动配置了。这个可以通过查看源码发现转载 2022-04-25 16:42:49 · 1530 阅读 · 0 评论 -
详解@ConfigurationProperties实现原理与实战
https://www.jb51.net/article/197130.htm在SpringBoot中,当需要获取到配置文件数据时,除了可以用Spring自带的@Value注解外,SpringBoot提供了一种更加方便的方式:@ConfigurationProperties。只要在bean上添加上这个注解,指定好配置文件的前缀,那么对应的配置文件数据就会自动填充到bean中。举个栗子,现在有如下配置: 1 2 3 myconfig.name=test转载 2022-04-25 16:17:53 · 1038 阅读 · 0 评论 -
Spring中@Configuration源码深度解析(二)
https://blog.csdn.net/qq_35634181/article/details/104550830 在Spring中@Configuration源码深度解析(一)中已经说到了执行代码块4的PostProcessorRegistrationDelegate#invokeBeanFactoryPostProcessors方法的第一个重要方法:invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcesso...转载 2022-04-25 15:28:43 · 479 阅读 · 0 评论 -
Spring事务处理时自我调用的解决方案及一些实现方式的风险
https://blog.csdn.net/wxwzy738/article/details/27566645?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ETopBlog-1.topblog&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%转载 2022-04-25 13:56:11 · 1262 阅读 · 0 评论 -
spring 定时任务@Scheduled原理解析
https://zhuanlan.zhihu.com/p/92768652官网API定义:An annotation that marks a method to be scheduled. Exactly one of thecron(),fixedDelay(), orfixedRate()attributes must be specified.The annotated method must expect no arguments. It will typically have a转载 2022-04-22 09:12:58 · 3458 阅读 · 0 评论 -
java8注解@Repeatable使用技巧
https://www.jianshu.com/p/4f65fae2510b前言@Repeatable是java8为了解决同一个注解不能重复在同一类/方法/属性上使用的问题。应用场景举一个比较贴近开发的例子,在spring/springboot我们引入资源文件可以使用注解@PropertySource@PropertySource("classpath:sso.properties")public class Application {}那要引入多个资源文件怎么办,没事,转载 2022-04-22 08:25:30 · 482 阅读 · 0 评论 -
基于LUA脚本的Redis分布式锁(SpringBoot实现)
https://www.jianshu.com/p/1145cd7e0cf11.前言Redis实现分布式锁,本身比较简单,就是Redis中一个简单的KEY。一般都利用setnx(set if not exists)指令可以非常简单的实现加锁,锁用完后,再调用del指令释放锁。要确保锁可用,一般需要解决几个问题:不能出现死锁情况,一个获得锁的客户端宕机或者异常后,要保障其他客户端也能获得锁。 应用程序通过网络与Redis交互,为避免网络延迟以及获取锁线程与其他线程不冲突,需要保障锁操作的原子转载 2022-04-17 11:02:55 · 3161 阅读 · 4 评论 -
redission布隆过滤器解决缓存穿透问题,定时刷新bloomFilter中的数据
https://blog.csdn.net/m0_50976581/article/details/113837970布隆过滤器初体验: 项目启动时创建bloomFilter对象,给他存数据,再注入到容器里,这个就不写了,跟下面差不多......定时任务触发,清空bloomFilter,存入最新的数据。/** * @author gaoyuzheng */@Componentpublic class BloomTask { @Autowired PmsF...转载 2022-04-17 11:03:29 · 1186 阅读 · 3 评论 -
Spring Boot -分布式锁Redisson
http://events.jianshu.io/p/5b21d978de13目录 Spring Cloud Alibaba 微服务系列文章0、Spring Cloud Alibaba微服务系列-准备工作 1、Spring Cloud Alibaba微服务系列-服务注册中心Nacos 2、Spring Cloud Alibaba微服务系列-配置中心Nacos 3、Spring Cloud Alibaba微服务系列-服务调用Open Feign 4、Spring Cloud Alibaba微服转载 2022-04-17 11:03:38 · 491 阅读 · 0 评论 -
SpringBoot整合Redisson
https://www.jianshu.com/p/118fceb2194aRedisson的Github地址:https://github.com/redisson/redisson/wiki/Table-of-Content1、添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>转载 2022-04-17 11:03:47 · 1095 阅读 · 0 评论 -
Redisson 分布式锁源码 02:看门狗
https://zhuanlan.zhihu.com/p/386328633前言说起 Redisson,比较耳熟能详的就是这个看门狗(Watchdog)机制。本文就一起看看加锁成功之后的看门狗(Watchdog)是如何实现的?加锁成功在前一篇文章中介绍了可重入锁加锁的逻辑,其中RedissonLock#tryAcquireAsync方法是进行异步加锁的逻辑。回顾一下这个方法的入参:waitTime:-1; leaseTime:-1,加锁时未指定锁时间,则为 -1,如..转载 2022-04-17 11:04:13 · 669 阅读 · 0 评论 -
基于LUA脚本的Redis分布式锁(SpringBoot实现)
https://www.jianshu.com/p/1145cd7e0cf11.前言Redis实现分布式锁,本身比较简单,就是Redis中一个简单的KEY。一般都利用setnx(set if not exists)指令可以非常简单的实现加锁,锁用完后,再调用del指令释放锁。要确保锁可用,一般需要解决几个问题:不能出现死锁情况,一个获得锁的客户端宕机或者异常后,要保障其他客户端也能获得锁。 应用程序通过网络与Redis交互,为避免网络延迟以及获取锁线程与其他线程不冲突,需要保障锁操作的原子转载 2022-04-15 08:54:36 · 578 阅读 · 0 评论 -
springboot2.0 集成redis服务详解,以及 (Lettuce & Jedis)
https://blog.csdn.net/zzhongcy/article/details/102584028前言在实际项目开发过程中,相信很多人都有用到过 redis 这个NoSQL,这篇文章就详细讲讲springboot如何整合 redisRedis 简介简单介绍下Redis:Redis是一个开源的使用 ANSI C语言编写,支持网络,可基于内存也可持久化的日志型,Key-Value数据库,并提供了多种语言的 API ,相比 Memcached 它支持存储的类型相对更多 (字符转载 2022-04-15 09:04:08 · 5950 阅读 · 2 评论 -
浅谈数据库连接池原理及优势
https://blog.csdn.net/C99965/article/details/107488372连接池的工作原理主要由三部分组成,分别为第一、连接池的建立。 一般在系统初始化时,连接池会根据系统配置建立,并在池中创建了几个连接对象,以便使用时能从连接池中获取。连接池中的连接不能随意创建和关闭,这样避免了连接随意建立和关闭造成的系统开销。Java中提供了很多容器类可以方便的构建连接池,例如Vector、Stack等。第二、连接池的管理。 连接池管理策略是连接池.转载 2022-04-18 08:12:58 · 455 阅读 · 0 评论 -
数据库连接池原理之(一):通俗易懂的数据库连接池原理以及实现机制讲解
https://blog.csdn.net/guobinhui/article/details/85157805?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefa转载 2022-04-13 08:25:36 · 1638 阅读 · 0 评论 -
你必须懂也可以懂的@Async原理
https://blog.csdn.net/l18848956739/article/details/108466630目录1.前言2.探秘之旅2.1 实现原理2.2 线程池使用2.3 异常处理2.4 返回值类型1.前言想你在看这篇文章之前有过使用@Async注解进行任务异步处理的经历,在项目开发过程中,针对非主流程、非实时、耗时的任务,往往会进行异步处理,这样既不会影响主流程,还会提高主流程的响应时间。在使用@Async注解进行异步处理的过程中,相信你也踩过不少转载 2022-04-18 08:13:19 · 222 阅读 · 0 评论 -
@RefreshScope 自动刷新原理
https://www.bianchengquan.com/article/136529.html前言文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger种一棵树最好的时间是十年前,其次是现在絮叨上篇文章和大家分析了 Nacos 的配置中心原理,分析了客户端的原理 还有服务端的原理,那么接下来就是我们要配合这个@RefreshScope这个注解来完成我们的自动配置采坑SpringBoot2.2.0+N转载 2022-04-19 09:52:05 · 399 阅读 · 0 评论 -
Spring BeanPostProcessor : PersistenceAnnotationBeanPostProcessor详解
https://blog.csdn.net/andy_zhang2007/article/details/86593188概述PersistenceAnnotationBeanPostProcessor是Spring提供的用于处理注解@PersistenceUnit和@PersistenceContext的BeanPostProcessor。用于注入相应的JPA资源:EntityManagerFactory和EntityManager (或者它们的子类变量)。注意 : 在目前的实现中,Pe转载 2022-04-13 08:25:56 · 1140 阅读 · 0 评论 -
SpringBoot-Spring-Data-JPA的多数据源配置
https://baijiahao.baidu.com/s?id=1726196535216981995&wfr=spider&for=pcSpringBoot-16-Spring-Data-JPA的多数据源配置在这之前我们以及介绍了使用JdbcTemplate链接Mysql数据库JdbcTemplate多数据源配置Spring-Data-Jpa的基本使用Spring-Data-Jpa分页操作看过Jbdc多数据源配置的配置的都知道,既然我们现在介绍了Sprin转载 2022-04-13 08:24:09 · 429 阅读 · 0 评论 -
@ConfigurationProperties的使用
https://blog.csdn.net/lucky_ly/article/details/90049513@ConfigurationProperties简介@ConfigurationProperties是springboot提供读取配置文件的一个注解。其对应的bean的后置处理器为ConfigurationPropertiesBindingPostProcessor它是实现了BeanPostProcessor接口,在bean被实例化后,会调用后置处理,递归的查找属性,通过反射注入值,对转载 2022-04-12 09:13:55 · 981 阅读 · 0 评论 -
详解@ConfigurationProperties实现原理与实战
https://www.jb51.net/article/197130.htm在SpringBoot中,当需要获取到配置文件数据时,除了可以用Spring自带的@Value注解外,SpringBoot提供了一种更加方便的方式:@ConfigurationProperties。只要在bean上添加上这个注解,指定好配置文件的前缀,那么对应的配置文件数据就会自动填充到bean中。举个栗子,现在有如下配置: 1 2 3 myconfig.name=test转载 2022-04-12 09:12:43 · 923 阅读 · 0 评论 -
spring源码分析——aop切面顺序实现原理
https://blog.csdn.net/stpice/article/details/102628624使用spring版本为4.3.221. 简介对于同一个目标方法而言,切面触发的顺序如下:Around->Before->businessFun->Around后续->After->AfterReturing/AfterThrowing。下边通过spring源码分析一下,对于切面类和方法的执行顺序,spring是如何控制的。2. spri转载 2022-04-12 09:07:55 · 904 阅读 · 0 评论 -
@Import与@ImportResource注解的解读
https://www.cnblogs.com/zzq6032010/p/11029641.html前言 在使用Spring-Cloud微服务框架的时候,对于@Import和@ImportResource这两个注解想必大家并不陌生。我们会经常用@Import来导入配置类或者导入一个带有@Component等注解要放入Spring容器中的类;用@ImportResource来导入一个传统的xml配置文件。另外,在启用很多组件时,我们会用到一个形如@EnableXXX的注解,比如@Enable..转载 2022-04-12 08:41:45 · 672 阅读 · 0 评论 -
SpringBoot 自动配置之Spring Data JPA
https://www.cnblogs.com/sword-successful/p/14337507.html前言不知道从啥时候开始项目上就一直用MyBatis,其实我个人更喜欢JPA些,因为JPA看起来OO的思想更强烈些,所以这才最近把JPA拿出来再看一看,使用起来也很简单,除了定义Entity实体外,声明自己的业务接口继承JpaRepository接口,什么逻辑也不用写,基本的增删改查,分页,排序就都搞定了。我在实现JpaRepository接口时就有个疑问,那么实现类是什么?如果用过转载 2022-04-12 08:36:54 · 2631 阅读 · 0 评论