codingjav
码龄9年
关注
提问 私信
  • 博客:954,959
    社区:3,641
    问答:1,833
    动态:13
    960,446
    总访问量
  • 246
    原创
  • 1,305,148
    排名
  • 256
    粉丝
  • 0
    铁粉

个人简介:骑马Coding

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2015-12-30
博客简介:

南国樱花祭

博客描述:
十年一小贱
查看详细资料
个人成就
  • 获得505次点赞
  • 内容获得152次评论
  • 获得1,195次收藏
  • 代码片获得491次分享
创作历程
  • 4篇
    2022年
  • 57篇
    2021年
  • 9篇
    2020年
  • 5篇
    2019年
  • 16篇
    2018年
  • 63篇
    2017年
  • 144篇
    2016年
成就勋章
TA的专栏
  • Redis由浅入深
    34篇
  • maven基础学习
    7篇
  • 数据结构与算法
    7篇
  • 每日一更
    2篇
  • springboot
    8篇
  • mysql
    18篇
  • 源码
    6篇
  • 计算机基础
    1篇
  • spring cloud
    3篇
  • leetCode
    3篇
  • Java设计模式
    14篇
  • javaweb
    29篇
  • 深入Java虚拟机
    7篇
  • Java学习
    91篇
  • springmvc
    14篇
  • mybatis
    37篇
  • 框架学习
    14篇
  • 前端
    8篇
  • Spring系列
    22篇
  • nginx
    4篇
  • git
    6篇
  • linux
    27篇
  • eclipse
    4篇
  • redis
    18篇
  • 协议
    3篇
  • Zookeeper
    2篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 搜索
    elasticsearch
  • 服务器
    linux
创作活动更多

新星杯·14天创作挑战营·第9期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛! 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见 https://bbs.csdn.net/topics/619626357 2、文章质量分查询:https://www.csdn.net/qc

475人参与 去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

mybatis源码解析 - mapper代理对象的生成

1、简单示例先看一个简单纯粹的mybatis demo(不集成spring等其他框架),代码结构很简单,如下图:完整代码地址:kingoe/boot-study;mapper层和我们平时说的dao层指的是同一个内容,都是数据库操作的封装,但是在没有集成mybatis时,dao层的接口都是需要我们手动去写其实现类,可在上图中我们却发现:我们并没有手动去实现PersonMapper接口,但工程却能实实在在的查询数据库,获取我们需要的数据,debug代码可以发现 PersonMapper实例是一个代.
原创
发布博客 2022.01.22 ·
628 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring拓展接口之FactoryBean

1、是什么FactoryBean的源码比较简单,大家可以细读下其注释。/** * 实现此接口的bean不能用作普通bean。此bean暴露的对象是通过getObject()创建的对象,而不是它自身 */public interface FactoryBean<T> { /** * 返回此工厂管理的对象的实例(可能是共享的或独立的,取决于isSingleton()的返回值) */ @Nullable T getObject() thro
原创
发布博客 2022.01.22 ·
397 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

canal+Kafka实现mysql与redis数据同步

前言上篇文章简单介绍canal概念,本文结合常见的缓存业务去讲解canal使用。在实际开发过程中,通常都会把数据往redis缓存中保存一份,做下简单的查询优化。如果这时候数据库数据发生变更操作,就不得不在业务代码中写一段同步更新redis的代码,但是这种 数据同步的代码和业务代码糅合在一起 看起来不是很优雅,而且还会出现数据不一致问题。那能不能把这部分同步代码从中抽离出来,形成独立模块呢?答案是肯定的,下面通过canal结合Kafka来实现mysql与redis之间的数据同步。架构设计can
原创
发布博客 2022.01.02 ·
2021 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

canal入门

前言以前对canal仅仅是停留在书本的概念层面上,从没实际搭建操作过,这不趁着元旦假期,学习输出一波。在此也祝福大家新年快乐,希望2022年大家工作顺利,事业更进一步。在日常工作中,数据不仅仅是直接保存在数据库中,还会涉及到其他中间组件,比如需要将数据同步到ES中供检索使用,也会把最新数据同步刷新到Redis等缓存中,实现数据一致性。这时就可以用到阿里开源的框架Canal,他可以很方便地同步数据库的增量数据到其他的存储应用。1、什么是canal我们先来看下官网的介绍:...
原创
发布博客 2022.01.02 ·
917 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

使用TargetSources

1.使用TargetSourcesSpring提供了TargetSource的概念,由org.springframework.aop.TargetSource接口进行描述。这个接口负责返回一个实现连接点的“目标对象(target object)”。每当AOP代理处理一个方法调用时都会向TargetSource的实现请求一个目标实例。使用Spring AOP的开发者通常不需要直接和TargetSource打交道,但这提供了一种强大的方式来支持池化(pooling),热交换(hot swappable.
原创
发布博客 2021.10.24 ·
1160 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

面试官:Spring代理目标bean时为何通过TargetSource类型对目标bean封装?

在Spring代理目标bean的时候,其并不是直接创建一个目标bean的对象实例的,而是通过一个TargetSource类型的对象将目标bean进行封装,Spring Aop获取目标对象始终是通过TargetSource.getTarget()方法进行的。本文首先会讲解Spring Aop是如何封装目标对象到TargetSource中的,然后会讲解TargetSource各个方法的使用原理,接着会对Spring提供的常见的TargetSource的实现类进行讲解,最后会讲解如何实现自定义的TargetSou
原创
发布博客 2021.10.24 ·
435 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Spring AOP 功能使用详解

前言AOP 既熟悉又陌生,了解过 Spring 人的都知道 AOP 的概念,即面向切面编程,可以用来管理一些和主业务无关的周边业务,如日志记录,事务管理等;陌生是因为在工作中基本没有使用过,AOP 的相关概念也是云里雾里;最近在看 Spring 的相关源码,所以还是先来捋一捋 Spring 中 AOP 的一个用法。相关概念在学习 Spring AOP 的用法之前,先来看看 AOP 的相关概念,Spring AOP 的详细介绍,请参考官网 https://docs.spring.io/spr
原创
发布博客 2021.10.21 ·
734 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Spring 事务使用详解

前言什么是事务?根据 维基百科事务 介绍,数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。简单来说,事务就是将一系列操作当成一个不可拆分的执行逻辑单元,这些要么都成功,要么都失败。事务具有4个属性:原子性、一致性、隔离性、持久性。称为ACID特性。Spring 事务在使用Spring进行开发过程中,一般都会使用Spring来进行事务的控制,接下来就来看下Spring使用事务的详细过程,包括事务的传播方式等。本文根据官方文档的介绍,...
原创
发布博客 2021.10.21 ·
5853 阅读 ·
5 点赞 ·
1 评论 ·
23 收藏

Spring 事务初始化源码分析

前言在上篇文章Spring 事务使用详解中详细介绍了Spring事务的使用过程,今天就来看下Spring事务是如何来实现,比如Spring事务在初始化的时候做了什么,Spring事务是如何进行事务的提交和回滚的;为了避免篇幅太长,所以分开两篇文章进行分析,这篇文章先来分析下Spring事务是如何初始化的,在初始化的时候做了什么。注册 InfrastructureAdvisorAutoProxyCreator我们知道,想要使用Spring事务,就得开启Spring的事...
原创
发布博客 2021.10.21 ·
223 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring 事务提交回滚源码解析

前言在上篇文章Spring 事务初始化源码分析中分析了 Spring 事务初始化的一个过程,当初始化完成后,Spring 是如何去获取事务,当目标方法异常后,又是如何进行回滚的,又或是目标方法执行成功后,又是怎么提交的呢?此外,事务的提交和回滚由底层数据库进行控制,而 Spring 事务行为可以传播,这个传播方式由 Spring 来进行控制,它是怎么控制的呢?这篇文章就来分析下 Spring 事务提交回滚的源码。TransactionInterceptor还记得在 Spring 事务初始化...
原创
发布博客 2021.10.21 ·
456 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

谈谈对线程安全的理解

如果这个是面试官直接问你的问题,你会怎么回答?一个专业的描述是,当多个线程访问一个对象时,如果不用进行额外的同步控制或其他的协调操作,调用这个对象的行为都可以获得正确的结果,我们就说这个对象是线程安全的那么我们如何做到线程安全?实现线程安全的方式有多种,其中在源码中常见的方式是,采用synchronized关键字给代码块或方法加锁,比如StringBuffer查看StringBuffer的源码,你会看到是这样的:那么,我们开发中,如果需要拼接字符串,使用StringBuilder还是S
原创
发布博客 2021.10.17 ·
259 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分布式锁实现方案

1、什么是锁在单进程环境中,存在多个线程可以同时改变某个变量,就需要对变量或代码块做同步,使其修改这种变量时能够线性执行,防止并发带来不可控的结果。而这种同步的本质就是通过锁实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么就需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余线程发现已经有标记后则等待标记的线程结束同步代码块取消后再尝试标记。这个标记可以理解为锁。不同地方实现锁不同,只要满足线程看到标记即可。...
原创
发布博客 2021.10.14 ·
216 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql-锁

根据加锁的范围,MySQL里面的锁大致可以分为全局锁、表级锁和行锁三类。全局锁全局锁是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,命令:Flush tables with read lock (FTWRL)当需要让整个库处于只读状态时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。全局锁的典型使用场景是,做全库逻辑备份。也就是把整库每个表都select出来存成文本。官方
原创
发布博客 2021.09.23 ·
121 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

tcp三次握手和四次挥手

1、为什么TCP采用3次握手而不是2次或4次握手原因1:双向连接,至少要三次握手其实问题本质是信道不可靠,但是通信双方需要就某个问题达成一致,而要解决这个问题,无论在消息中包含什么消息,三次通信是理论上的最小值。 所以三次握手不是TCP本身的要求,而是为了满足“在不可靠信道上可靠的传输信息”这一需求所导致的。三次达到了,后面想接着握手也好,发数据也好,跟进行可靠信息传输的需求就没关系了。前提1:TCP协议要保证双方可以通信即发送端接收端要确认自己发送的信息对方能接收到,对方发送的信息自己
原创
发布博客 2021.09.19 ·
149 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringMVC 方法三种类型返回值总结,你用过几种?

SpringMVC 现在算是 Java 领域的一个基础性框架了,很多人天天用,可是对于 SpringMVC 方法的返回值,你又是否完全清楚呢?今天松哥就来和大家聊一聊 SpringMVC 中四种不同类型的返回值,看看有没有 get 到你的知识盲点?1. ModelAndView以前前后端不分的情况下,ModelAndView 应该是最最常见的返回值类型了,现在前后端分离后,后端都是以返回 JSON 数据为主了。后端返回 ModelAndView 这个比较容易理解,开发者可以在 ModelAndVie
转载
发布博客 2021.09.07 ·
1400 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

springboot跨域解决方案

1:为什么会出现跨域问题  出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)  简单说A应用只能访问A应用后台传来数据,
原创
发布博客 2021.09.07 ·
160 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JVM脑图整理

原创
发布博客 2021.08.21 ·
189 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

面试题之Java内存区域

基本问题介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种方式(句柄和直接指针两种方式)1、运行时数据区域JDK1.8之前:JDK1.8:线程私有的:程序计数器 虚拟机栈 本地方法栈线程共享的:堆 方法区 直接内存 (非运行时数据区的一部分)2.1 程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过
原创
发布博客 2021.08.21 ·
234 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JVM综合面试题汇总.docx

发布资源 2021.08.21 ·
docx

限流算法之计数器算法

计数器法是限流算法里最简单也是最容易实现的一种算法。假设一个接口限制一分钟内的访问次数不能超过100个,维护一个计数器,每次有新的请求过来,计数器加一,这时候判断,如果计数器的值小于限流值,并且与上一次请求的时间间隔还在一分钟内,允许请求通过,否则拒绝请求,如果超出了时间间隔,要将计数器清零。/** * 限流算法集合 */@Slf4jpublic class RateLimitUtils { //初始时间 private static long startTime =
原创
发布博客 2021.08.21 ·
828 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏
加载更多