- 博客(716)
- 资源 (12)
- 收藏
- 关注

原创 Spring高手系列目录
Spring系列第1篇:请问各位大佬为何要学spring?Spring系列第2篇:控制反转(IoC)与依赖注入(DI),晦涩难懂么?Spring系列第3篇:Spring容器基本使用及原理Spring系列第4篇:xml中bean定义详解(-)Spring系列第5篇:创建bean实例这些方式你们都知道?Spring系列第6篇:玩转bean scope,避免跳坑里!Spring系列第7篇:依赖注入之手动注入Spring系列第8篇:自动注入(autowire)详解,高手在于坚持!Spring系列第.
2021-06-26 12:19:41
5318
转载 Spring-Retry 和 Guava-Retry,各有千秋
大家好,我是路人,更多优质文章见个人博客:http://itsoku.com一 重试框架之Spring-RetrySpring Retry 为 Spring 应用程序提供了声明性重试支持。它用于Spring批处理、Spring集成、Apache Hadoop(等等)。它主要是针对可能抛出异常的一些调用操作,进行有策略的重试1. Spring-Retry的普通使用方式1.准备工作我们只需要加上依赖:...
2023-11-24 08:06:39
13
转载 一口气说出分布式事务的七种解决方案
大家好,我是路人,更多优质文章见个人博客:http://itsoku.com随着业务的快速发展、业务复杂度越来越高,几乎每个公司的系统都会从单体走向分布式,特别是转向微服务架构。随之而来就必然遇到分布式事务这个难题。这篇文章首先介绍了相关的基础理论,然后总结了最经典的事务方案,最后给出了子事务乱序执行(幂等、空补偿、悬挂问题)的解决方案,分享给大家。基础理论在讲解具体方案之前,我们先了解一下分布式...
2023-11-24 08:06:39
15
转载 掌握这些 SpringBoot 启动扩展点,已经超过 90% 的人了
大家好,我是路人,更多优质文章见个人博客:http://itsoku.com1.背景Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。我非常喜欢这种自动装配的机制,所以在自己开发中间件...
2023-11-23 12:03:42
18
转载 微服务架构的演进
您好,我是路人,更多优质文章见个人博客:http://itsoku.com本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一...
2023-11-20 12:04:49
14
转载 学会 Arthas,让你 3 年经验掌握 5 年功力!
简介Arthas 是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作 。支持JDK 6+,支持Linux/Mac/Windows。这个工具真的很好用,而且入门超简单,十分推荐。使用场景这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commi...
2023-11-20 12:04:49
13
转载 Java性能优化的七个方向,建议收藏
大家好,我是路人~本文主要侧重于理论分析,我们从整体上看一下 Java 性能优化都有哪些可以遵循的规律。本文主讲理论。关于实践,后续的文章会用较多的案例来细化本文的知识点,适合反复思考和归纳。概述性能优化根据优化的类别,分为业务优化和技术优化。业务优化产生的效果也是非常大的,但它属于产品和管理的范畴。同作为程序员,在平常工作中,我们面对的优化方式,主要是通过一系列的技术手段,来完成对既定的优化目标...
2023-11-16 12:30:18
19
转载 面试反馈 Spring Cloud 的25连环炮
大家好,我是路人,更多优质文章见个人博客:http://itsoku.com前言上周,一位朋友在面试被问到了Spring Cloud,然后结合他的反馈,今天我们继续走起SpringCloud面试连环炮。欢迎大家关注Spring Cloud核心知识总结 下面是一张Spring Cloud核心组件关系图:从这张图中,其实我们是可以获取很多信息的,希望大家细细品尝。话不多说,我们直接开始 Spring ...
2023-11-16 12:30:18
15
转载 大文件上传时如何做到 秒传?
大家好,我是路人~文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。那有没有比较好的上传体验呢,答案有的,就是下边要介绍的几种上传方式秒传1、什么是秒传通俗的说,你把要上传的东西上传,服务器会...
2023-11-15 12:00:49
14
转载 浅谈Java中的池化技术
大家好,我是路人~目录公用池化包 Commons Pool 2简介案例面试题JMH 测试数据库连接池 HikariCP结果缓存池小结背景在我们平常的编码中,通常会将一些对象保存起来,这主要考虑的是对象的创建成本。比如像线程资源、数据库连接资源或者 TCP 连接等,这类对象的初始化通常要花费比较长的时间,如果频繁地申请和销毁,就会耗费大量的系统资源,造成不必要的性能损失。并且这些对象都有一个显著的特...
2023-11-15 12:00:49
22
转载 代码总是被嫌弃写的太烂?装上这个 IDEA 插件再试试!
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达1.SonarLintSonarLint是一个代码质量检测插件,可以帮助我们检测出代码中的坏味道。下载与安装在需要检测的单个文件或者单个项目上右键 --> Analyze --> Analyze with SonarLint或者选中文件或目录,点击菜单栏 Analyze --> Analyze with Sona...
2023-11-14 12:01:18
15
转载 横贯八方揭秘RabbitMQ、RocketMQ、Kafka 的核心原理(建议收藏)
靓仔,我们又见面了。公众号改了推送规则,设置星标才能及时收到推送哦今天我们通过一篇文章来认识一下常见消息队列RabbitMQ、RocketMQ、Kafka。RabbitMQRabbitMQ各组件的功能Broker :一个RabbitMQ实例就是一个BrokerVirtual Host :虚拟主机。相当于MySQL的DataBase,一个Broker上可以存在多个vhost,vhost之间相互隔离。...
2023-11-14 12:01:18
25
转载 大意了,一次MySQL分页导致的线上事故...
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达今天给大家分享个生产事故,一个由于MySQL分页导致的线上事故,事情是这样的~背景一天晚上10点半,下班后愉快的坐在在回家的地铁上,心里想着周末的生活怎么安排。突然电话响了起来,一看是我们的一个运维同学,顿时紧张了起来,本周的版本已经发布过了,这时候打电话一般来说是线上出问题了。果然,沟通的情况是线上的一个查询数据的接口被疯狂的失去理...
2023-11-13 12:00:52
15
转载 Spring Boot 实现各种参数校验,写得太好了,建议收藏!
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达之前也写过一篇关于Spring Validation使用的文章,不过自我感觉还是浮于表面,本次打算彻底搞懂Spring Validation。本文会详细介绍Spring Validation各种场景下的最佳实践及其实现原理,死磕到底!项目源码:https://github.com/chentianming11/spring-valid...
2023-11-13 12:00:52
27
转载 2023 Java版【数据结构与算法】的天花板,收藏好,慢慢看
2023 最新版 Java 数据结构与算法来了,堪称 java 版数据结构与算法的天花板,需要学数据结构与算法的,刷这套就可以了,目录如下,文末附教程地址。基础数据结构-001-二分查找-算法描述基础数据结构-002-二分查找-算法实现基础数据结构-003-二分查找-问题1-循环条件基础数据结构-004-二分查找-问题2-中间索引基础数据结构-005-二分查找-问题3-比较符号基础数据结...
2023-11-11 12:29:51
26
转载 8个小妙招搞定数据库性能优化,yyds~
大家好,我是路人~毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。如果我们有一套成熟的方法论,能让大家快速、准确的去选择出合适的优化方案,我相信能够快速准备解决咱么日常遇到的80%甚至90%的性能问题。从解决问题的角度出发,我们得先了解到问题的原因;其次我们得有一套思考、判断问题的流程方式,让我们合理的站在哪个层面选择方案;最后...
2023-11-08 23:04:27
34
转载 Spring Boot 实现接口幂等性的 4 种方案
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达一、什么是幂等性幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造...
2023-11-08 23:04:27
25
转载 【合集】万字长文带你重温Elasticsearch ,这下完全懂了!
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达由于近期在公司内部做了一次 Elasticsearch 的分享,所以本篇主要是做一个总结,希望通过这篇文章能让读者大致了解 Elasticsearch 是做什么的以及它的使用和基本原理。生活中的数据搜索引擎是对数据的检索,所以我们先从生活中的数据说起。我们生活中的数据总体分为两种:结构化数据非结构化数据结构化数据:也称作行数据,是由二...
2023-10-30 12:03:30
36
转载 SpringBoot 生产中 16 条最佳实践
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达Spring Boot是最流行的用于开发微服务的Java框架。在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践。这些内容是基于我的个人经验和一些熟知的Spring Boot专家的文章。在本文中,我将重点介绍Spring Boot特有的实践(大多数时候,也适用于Spring项目)。以下依次列...
2023-10-25 12:00:21
32
转载 SpringBoot 最常用的 7 大类注解,哪些你还不知道?
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达随着技术的更新迭代,Java5.0开始支持注解。而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架。而spring的的注解那么多,可能做java很多年,都用不上。这里按照类型总结了这7种最常用的注解。一. 核心注解@Required此注解用于bean的sette...
2023-10-25 12:00:21
51
转载 Intellij IDEA 高效使用教程,效率提升十倍
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达安装好Intellij idea之后,进行如下的初始化操作,工作效率提升十倍。一. 安装插件1. Codota 代码智能提示插件图片只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。原因是它学习了我的项目代码,总结出了我的代码偏好。图片如果让它再加上机器学习,人工智能写代码的时代还会远吗?2. Key Pro...
2023-10-23 12:00:39
70
转载 如何构建高效排障的能力?
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达在讲解事件、故障处理思路前,先讲一个故障场景(以呼叫中心系统作为一例子):业务人员反映呼叫中心系统运行缓慢,部份电话在自助语言环节系统处理超时,话务转人工座席,人工座席出现爆线情况。运维人员开始忙活了,查资源使用情况、查服务是否正常、查日志是否报错、查交易量还有没有……时间不知不觉的在敲键盘、敲键盘、敲键盘中过去,但是原因还未定位。经...
2023-10-23 12:00:39
41
转载 4年工作经验,多线程间的5种通信方式都说不出来,你敢信?
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达问题有两个线程,A 线程向一个集合里面依次添加元素“abc”字符串,一共添加十次,当添加到第五次的时候,希望 B 线程能够收到 A 线程的通知,然后 B 线程执行相关的业务操作。线程间通信的模型有两种:共享内存和消息传递,以下方式都是基本这两种模型来实现的。一、使用 volatile 关键字基于 volatile 关键字来实现线程间相...
2023-10-20 12:03:44
64
转载 SQL优化的魅力!从 30248s 到 0.001s
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达场景用的数据库是mysql5.6,下面简单的介绍下场景。课程表createtableCourse(c_idintPRIMARYKEY,namevarchar(10))数据100条。学生表createtableStudent(idintPRIMARYKEY,namevarchar(10))数据7000...
2023-10-19 12:01:10
44
转载 Spring Boot 自动装配原理,图文并茂,万字长文!
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达首先,先看SpringBoot的主配置类:@SpringBootApplicationpublicclassStartEurekaApplication{publicstaticvoidmain(String[]args){SpringApplication.run(StartEu...
2023-10-18 08:30:40
66
转载 Linux保姆级教程,太全了!
今天给大家分享的是阿里大佬整理的 Java 开发者必备的《Linux 保姆级教程.pdf》,图文并茂,特别详细,基本上涵盖了 Linux 所有知识点,文末直接领取高清 PDF高清 PDF 获取方式扫描下面二维码,发送:linux...
2023-10-18 08:30:40
37
转载 SQL语句优化的30种方法,总结的太棒了
大家好,我是路人~~~点击下方卡片,关注我,java干货及时送达1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:s...
2023-10-16 20:32:46
54
转载 如何优雅的自定义 ThreadPoolExecutor 线程池
您好,我是路人,更多优质文章见个人博客:http://itsoku.com1、概述java 中经常需要用到多线程来处理一些业务,非常不建议单纯使用继承Thread或者实现Runnable接口的方式来创建线程,那样势必有创建及销毁线程耗费资源、线程上下文切换问题。同时创建过多的线程也可能引发资源耗尽的风险,这个时候引入线程池比较合理,方便线程任务的管理。java中涉及到线程池的相关类均在 jdk 1...
2023-10-16 20:32:46
38
转载 面试官:电商库存扣减如何设计?如何防止超卖?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com解决方案使用mysql数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。还是使用数据库,但是将库存分成多份存到多条记录里面,扣减库存的时候路由一下,这样子增大了并发量,但是还是避免不了大量的去访问数据库来更新库存。将库存放到redis使用redis的incrby特性来扣减库存。分析在上面的第一种和第二种方式都是基于...
2023-08-23 21:11:02
101
转载 面试官:select......for update会锁表还是锁行?
您好,我是路人,更多优质文章见个人博客:http://itsoku.comselect查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁。那么它加的是行锁还是表锁,这就要看是不是用了索引/主键。没用索引/主键的话就是表锁,否则就是是行锁。验证:建表sql//id为主键 //name 为唯一索引CREATETABLEuse...
2023-08-02 20:32:10
101
转载 面试官:MySQL分表后,如何做分页查询?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com随着项目运行的时间越来越长,有些数据的存储也会越来越大,比如一些点击量,浏览量量,单表的数据可以到达上千万条数据,这时候会存在单表数据过大,查询效率低的问题。为了提高查询效率这时候需要对单表进行拆分,比如一张1000万条数据的表,我们需要把它拆分为10张表,一张表就需要100万,mysql中单表都有一个最大存储的阈值,数据量...
2023-08-02 20:32:10
240
转载 面试官:说一下SSO 单点登录和 OAuth2.0 的区别
您好,我是路人,更多优质文章见个人博客:http://itsoku.com一、概述SSO是Single Sign On的缩写,OAuth是Open Authority的缩写,这两者都是使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,但概念上又十分不同。SSO大家应该比较熟悉,它将登录认证和业务系统分离,使用独立的登录中心,实现了在登录中心登录后,所有相关的业务系统都能免登录访问资源。...
2023-07-31 22:09:49
81
转载 面试官:线程池中多余的线程是如何回收的?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com最近阅读了JDK线程池ThreadPoolExecutor的源码,对线程池执行任务的流程有了大体了解,实际上这个流程也十分通俗易懂,就不再赘述了,别人写的比我好多了。不过,我倒是对线程池是如何回收工作线程比较感兴趣,所以简单分析了一下,加深对线程池的理解吧。那么,就以JDK1.8为例分析吧。1. runWorker(Work...
2023-07-27 20:32:31
305
转载 面试官:ReadWriteLock读写之间互斥吗?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com开发中遇到并发的问题一般会用到锁,Synchronized存在明显的一个性能问题就是读与读之间互斥;ReadWriteLock是JDK5中提供的读写分离锁。读写分离锁可以有效地帮助减少锁竞争,以提升系统的性能。ReadWriteLock管理一组锁,一个是只读的锁,一个是写锁。Java并发库中ReetrantReadWrite...
2023-07-27 20:32:31
82
转载 面试官:说一下加密后的数据如何进行模糊查询?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com正文我们知道加密后的数据对模糊查询不是很友好,本篇就针对加密数据模糊查询这个问题来展开讲一讲实现的思路,希望对大家有所启发。为了数据安全我们在开发过程中经常会对重要的数据进行加密存储,常见的有:密码、手机号、电话号码、详细地址、银行卡号、信用卡验证码等信息,这些信息对加解密的要求也不一样,比如说密码我们需要加密存储,一般使用...
2023-07-25 20:34:05
111
转载 面试官:Java反射和new效率对比,差距有多大?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com一、基础概念Java中,一般我们创建一个对象可能会选择new一下个实例。但是随着我们技术的不断提升,我们也学习到了,可以通过反射技术实现对象的创建。可是,你有没有想一下,什么时候我们该用new创建对象,什么时候我们该用反射创建对象呢?两者创建对象的效率又是如何呢?//new方式创建对象ReflectDemoreflec...
2023-07-24 20:32:49
174
转载 面试官:谈谈过滤器和拦截器的区别?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com一、拦截器和过滤器的区别1、拦截器(Interceptor)只对action请求起作用 即对外访问路径而过滤器(Filter)则可以对几乎所有的请求都能起作用 包括css js等资源文件2、拦截器(Interceptor)是在Servlet和Controller控制器之间执行而过滤器(Filter)是在请求进入Tomcat容...
2023-07-24 20:32:49
87
转载 面试官:Java 内存泄漏了,怎么排查?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com由来前些日子小组内安排值班,轮流看顾我们的服务,主要做一些报警邮件处理、Bug 排查、运营 issue 处理的事。工作日还好,无论干什么都要上班的,若是轮到周末,那这一天算是毁了。不知道是公司网络广了就这样还是网络运维组不给力,网络总有问题,不是这边交换机脱网了就是那边路由器坏了,还偶发地各种超时,而我们灵敏地服务探测服务总...
2023-07-14 20:32:46
98
转载 面试官:Spring IOC 为什么能降低耦合?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com有同学在学习 Spring 框架中可能会问这样的问题,为什么通过依赖注入就可以降低代码间的耦合呢?我通过 new 生产对象不也可以吗,不就是一行代码的不同,一个是 @Resource 注入,一个是 new 创建,怎么就降低耦合了?今天博主就带大家来一步步剖析这个问题一、传统方式创建对象通常我们是这样创建对象的WuliCar...
2023-07-14 20:32:46
78
转载 面试官:用户在浏览器输入 URL 回车后,会发生什么?
您好,我是路人,更多优质文章见个人博客:http://itsoku.com这个问题已经是老生常谈了,更是经常被作为面试的压轴题出现,网上也有很多文章,但最近闲的无聊,然后就自己做了一篇笔记,感觉比之前理解更透彻了。注意:本文的步骤是建立在,请求的是一个简单的 HTTP 请求,没有 HTTPS、HTTP2、最简单的 DNS、没有代理、并且服务器没有任何问题的基础上,尽管这是不切实际的。大致流程URL...
2023-07-13 08:32:38
77
极客时间课程
2019-04-30
springaop中切入点表达式完整示例代码
2019-04-29
jsonp源码以及jar包
2012-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人