自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

花好夜猿

废掉一个人最隐蔽的方式,是让他忙到没有时间成长!

  • 博客(35)
  • 收藏
  • 关注

原创 [Mybatis]-[基础支持层]-mappers标签解析-mapper-sql解析

该系列文章针对 Mybatis 3.5.1 版本Mybatis 中 <mappers> 标签解析,主要是为了得到两大部分数据1、Mapper.class 接口2、SQL 执行语句,结果集映射关系等数据在上一章中提到了 Mapper.class 文件的解析,Mapper.class 是接口文件,该接口是发起SQl执行调用的 API 入口,所有相关的操作都在其代理类 MapperProxy 中完成。在上一章中忽略了 Mapper.class 文件中 @Select 等 SQL.

2020-10-24 13:43:02 456

原创 [Mybatis]-[基础支持层]-mappers标签解析-mapper-class文件

该系列文章针对 Mybatis 3.5.1 版本上一篇文章提到,针对 mybatis-config.xml XML 配置中的 <mappers> ,Mybaits 主要会加载两个模块的数据1、 XML 文件 2、 mapper class 接口文件来回顾一下 mybatis-config.xml 中 <mappers> 的配置示例,如下图:如图,有两种配置方式,一种:单独配置,通过 <mapper resource="xml路径">配置。多个 .

2020-10-24 13:39:58 1061

原创 [Mybatis]-[基础支持层]-mappers标签中包含了那些内容

该系列文章针对Mybatis3.5.1版本<mappers>标签在mybatis-config.xml中的配置案例如下:<mappers>标签中配置的是我们定义的 xml 文件或者mapper class ,配置的方式有两种 1、通过子标签<mapper>进行单个 xml 文件的配置 2、通过子标签<package>配置扫描包路径 针对<mappers>标签,Mybatis 从大方面来说...

2020-10-24 13:39:36 374

原创 [Mybatis]-[基础支持层]-类型转换处理-自定义typeHandler

该系列文章针对 Mybatis 3.5.1 版本Mybatis 提供了很多内置的 TypeHandler ,几乎可以满足我们日常所需要的所有 Java类型到数据库类型的转换。不过在某些特定的场景,有自定义 TypeHandler 的需求。下面一个简单的案例,自定义一个 TypeHandler,并将其注册到 Mybatis 中的TypeHandlerRegistry容器中。自定义 TypeHandler自定义字符串类型处理器step1、 自定义字符串类型处理器MyStri...

2020-10-22 11:26:16 226

原创 [Mybatis]-[基础支持层]-类型转换处理-typeHandler

该系列文章针对 Mybatis 3.5.1 版本一、TypeHandler 类型处理器介绍MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用typeHandler类型处理器将获取到的值以合适的方式转换成 Java 类型,或者将 Java 类型映射成数据库支持的类型。在 Mybatis 中内置了很多的TypeHandler,这些内置的TypeHandler存储在了TypeHandlerRegistry容器中。如下图,...

2020-10-21 08:33:22 131

原创 [Mybatis]-[基础支持层]-数据源信息-数据源详解

该系列文章针对 Mybatis 3.5.1 版本在上一篇文章中,谈到了<environment>标签解析会构建Environment对象,Environment对象中有两个关键属性对象:TransactionFactory和DataSource。本章重点来讲解一下DataSource相关实现类一、回顾首先来回顾一下XMLConfigBuilder中构建DataSource的相关代码,如下图:通过读取配置文件<dataSource t...

2020-10-20 08:49:47 206

原创 [Mybatis]-[基础支持层]-数据源信息-事务管理器详解

该系列文章针对 Mybatis 3.5.1 版本一、回顾先来回顾一下XMLConfigBuilder标签解析构建TransactionFactory的相关代码,如下图:代码通过读取mybatis-config.xml配置文件中标签配置<transactionManager type="xx"上的 type 值,该值对应的TypeAliasRegistry中 HashMap 的 key值。通过 key 值获取 class ,然后通过反射实例化相关的事务工厂。...

2020-10-20 08:49:13 128

原创 [Mybatis]-[基础支持层]-数据源信息-environment标签解析

该系列文章针对Mybatis3.5.1版本ORM 框架实现的功能就是程序与数据库之间交互操作,而操作数据库前就需要数据库的相关信息,比如:链接地址、用户名、密码等。在 Mybatis 中关于数据库链接信息配置在了<environment>标签中。<environments>在mybatis-config.xml中的配置案例,如下图:从上述配置文件中得到如下信息 配置文件可以配置多个环境数据,如:开发、测试不同环境不同的配置信息。 不...

2020-10-19 08:53:54 578

原创 [Mybatis]-[基础支持层]-数据来源-配置文件

该系列文章针对 Mybatis 3.5.1 版本在 Mybatis 中存在一个重要对象Configuration,它存储了几乎所有 Mybatis 运行期间会用到的内容,比如:sql语句,mapper 等内容。可以说是 Mybatis 的数据中心,在使用 Mybatis 框架时,Configuration是贯穿整个框架至关重要的一环,所以学习 Mybatis 框架首先需要了解的就是Configuration的构建。Mybatis 采用 XML 的方式将Configuratio...

2020-10-18 09:36:08 63

原创 [Mybatis]-IDEA导入Mybatis源码

该系列文章针对 Mybatis 3.5.1 版本一、下载 Mybatis 源码step1、下载 Mybatis-3.5.1 源码Mybatis 源码仓库地址下载版本信息如下:下载后进行解压,并打开 pom 文件,查看pom 中的父级依赖,如下:根据上述版本信息,下载 Mybatis 父级依赖mybatis-parent源码step2、下载 mybatis-parent-31 源码Mybatis-parent 源码仓库地址下载版本信息如下:...

2020-10-17 17:10:48 619

原创 [Mybatis]-Mybatis 整体架构

该系列文章针对 Mybatis 3.5.1 版本一、Mybatis 整体架构ORM 框架的产生,是为了解放生产力,提高代码的复用性,于是在 JDBC 上进行一层层抽象优化,随着抽象内容越来越多,为了使得代码更易于维护,职责更清晰,慢慢的将代码根据细化的职责进行模块化,从而形成 ORM 框架。Mybatis 便是其中一个。Mybatis代码抽象模块大体分为三层结构 接口层 核心处理层 基础支持层 如下图(图片来自《Mybatis技术内幕》)1.1、...

2020-10-17 17:05:54 279 1

原创 [Mybatis]-Mybatis概述

一、什么是 MybatisMybatis 英文官方文档官方文档 给出的说明MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings.MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval o

2020-10-17 07:32:31 360

原创 Anaconda安装

Windows 安装 Anaconda下载相关版本各版下载地址官方最新下载地址anaconda3-2020.02-Windows-x86_64 百度网盘下载地址链接:https://pan.baidu.com/s/15ot8a-8l8vkq-8zBNZAbKA 提取码:7lqm安装安装过程如果遇到任何问题,暂时关闭杀毒软件,安装完成后在打开step1、双击 exec 文件step2、选择“Next”step3、选择 “I Agree”step3、勾选“Just Me” ,

2020-07-04 08:21:45 424

原创 Mybatis【面试题】讲讲Mybatis的缓存-简答

参考资料:Mybatis 官网本文内容如下:一、简答一级缓存二级缓存spring 整合 Mybatis总结二、代码验证缓存1、验证一级缓存的存在验证作用范围 STATEMENT验证作用范围 SESSION2、验证二级缓存的存在3、Spring整合Mybatis 之后,一级缓存的验证一、简答Mybatis 的缓存有 一级缓存 和 二级缓存。一级缓存一...

2019-12-26 08:03:32 1534

原创 Spring Boot 配置优先级

参考资料:Sprinb Boot 2.1.5.RELEASE 官方文档Spring framework 5.1.9.RELEASE 官方文档配置中心以 Spring Cloud Config 作为展开前置问题在以Spring Boot 和 Spring Cloud 作为技术栈的开发中,针对应用的配置最常见用的就是三种配置,classpath 下的 application.prop...

2019-11-16 22:17:13 844

原创 Spring-MVC【应用篇】请求入参类型转换

环境:Spring Boot 2.1.5.RELEASE 对应 Springframework 5.1.7.RELEASE在 Spring-MVC【应用篇】请求入参类型转换 一文中,从源码的角度解析了 Spring MVC 针对两种入参类型(表单入参,Json格式入参)如何对入参进行类型转换。下面通过简单的案例看看在项目中如何通过自定义类型转换类使得代码更整洁。背景问题:将入参为保留两位...

2019-10-09 22:19:38 685

原创 Spring-MVC【源码篇】请求入参类型转换

环境:Spring Boot 2.1.5.RELEASE 对应 Springframework 5.1.7.RELEASE回顾在 Spring-MVC【源码篇】请求参数和响应结果解析 一文中,提到了 Spring MVC 在进行请求处理提供了 HandlerMethodArgumentResolver(方法参数解析器)集合 和 HandlerMethodReturnValueHandler...

2019-10-01 14:07:58 1084

原创 【RabbitMQ】- 消息的可靠投递 - 投递消息

参考资料:《RabbitMQ实战指南》RabbitMQ 官网在 RabbitMQ【理论篇】RabbitMQ相关概念及工作模型 中介绍了在开发中使用 RabbitMQ 作为中间件的 三个主体步骤:生产消息并发送、RabbitMQ 路由消息并保存、消费者消费消息。在于 RabbitMQ 交互中为了确保 msg(消息) 携带的业务信息被正常处理 三个主体步骤就需要有如下保障:(确保通过 Ra...

2019-09-11 09:49:15 451

原创 【RabbitMQ】- RabbitMQ相关概念及工作模型

参考资料:《RabbitMQ实战指南》RabbitMQ 工作模型通过上图熟悉 RabbitMQ 相关概念。在开发中,当我们将 RabbitMQ 作为系统的组成部分时,程序与 RabbitMQ 之间的交互,包括 RabbitMQ 自身的处理,可以分为三个主体:生产者,RabbitMQ 自身,消费者。下面以这三个主题进行展开,介绍 RabbitMQ 涉及到的相关概念。首先先来看看: R...

2019-09-07 10:41:18 230

原创 应用级限流-令牌桶实现方式

ReateLimiter 官方DemoReateLimiter 相关文档中文版《亿级流量网站架构核心技术》张开涛 限流详解令牌桶限流上图为令牌桶的原理图,根据原理图能够得知:令牌桶的组成部分1、令牌 - 生成2、令牌 - 存放3、令牌 - 获取令牌桶的原理1、令牌生成器:根据设定的令牌生成策略生成令牌,并将令牌存放至令牌存放地(令牌桶)中。2、令牌获取器:用户请求到达,...

2019-08-29 22:37:01 1835

原创 Spring-MVC【源码篇】请求参数和响应结果解析

版本:spring Boot 2.1.3.RELEASE 相当于 Spring Framework web 5.1.5.RELEASE回顾在 [Spring MVC]https://mp.weixin.qq.com/s/hIv7SkS_lCQrYOBxHBsGfA) 中讲解了 Spring MVC 的工作机制。第一步、 请求 Request 进入到 Spring 应用中,统一由分发器 D...

2019-08-16 12:38:27 475

原创 Spring Cloud Zuul【源码篇】zuul如何进行请求转发、限流熔断等功能扩展

参考资料:Spring Cloud 官网Zuul wiki相关版本:zuul 1.3.1,spring boot 2.1.4 ,spring cloud Greenwich.SR1回顾在 Spring Cloud Zuul【源码篇】揭秘 Zuul 中知道了 Zuul 本质是由 Servlet 和 Filter 组成。其中 Servlet 用来接收请求,而 ZuulFilter...

2019-07-30 22:45:52 1122

原创 Spring Cloud Zuul【源码篇】Zuul揭秘

参考资料:Spring Cloud 官网Zuul wiki相关版本:zuul 1.3.1,spring boot 2.1.4 ,spring cloud Greenwich.SR1一个简单的 zuul 案例step1、引入依赖// zuul 依赖spring-cloud-starter-netflix-zuul// eureka 依赖spring-cloud-star...

2019-07-07 11:56:25 215

原创 Spring Cloud Feign【源码篇】Feign 如何调用Ribbon进行客户端负载均衡

参考资料:Spring Cloud 官网相关版本:Spring Boot 2.1.5.RELEASE 、Spring Cloud Greenwich.SR回顾在 Spring Cloud Feign【源码篇】Feign 如何进行服务间请求调用 中,提到了 Feign 如何进行服务调用的。Feign 在封装了相关的请求参数 RequestTemplate 后,发起服务远程请求调用。 ...

2019-07-01 21:02:28 5563 3

原创 Spring Cloud Feign【源码篇】Feign Hystrix Support

友情提示:如果你对 Feign 不是很了解,请先阅读 Feign 如何进行服务间调用相关版本:Spring Boot 2.1.5.RELEASE 、Spring Cloud Greenwich.SR回顾在 Feign 如何进行服务间调用 一文中,提到了Feign 自动配置类 FeignAutoConfiguration。在之前提到,Feign 对象进行实例化的时候会调用 Targe...

2019-06-27 20:34:01 466

原创 Spring Cloud Feign【源码篇】Feign 如何进行服务间请求调用

参考资料:Spring Cloud 官网Spring Cloud Feign 默认使用 HTTP 的形式进行远程服务调用。先来看一个简单的案例,假设此时有一个服务provider 和一个服务consumer。服务provider9527提供接口/hello/{name}服务consumer9528调用 服务provider的 hello/{name}...

2019-06-23 21:49:49 3772

原创 Spring Cloud Hystrix【应用篇】 Hystrix Dashboard

参考资料:Hystrix GitHub 官方文档Hystrix Wiki 文档spring Cloud 文档Hystrix DashboardHystrix Dashboard 界面在 Hystrix Dashboard 界面中,我们能够知道有三种输入方式获取 Hystrix 监控信息默认集群监控Cluster via Turbine (default cluster):...

2019-06-20 08:26:35 467

原创 Spring Cloud Hystrix【应用篇】

参考资料:Hystrix GitHub 官方文档Hystrix Wiki 文档Hystrix 封装对象回顾在上一篇 Hystrix[理论篇]中,提到 Hystrix 提供了两种封装对象 HystrixCommand 和 HystrixObservableCommand。他们分别提供了四种执行方式:execute()queue()observe()toObservable()...

2019-06-17 13:26:58 441

原创 【Java】带你捋清楚Java混乱的日志体系

为什么需要日志在学习中,我们通过写笔记,写博客来记录自己的学习收获、心得,在以后需要复习回顾的时候进行翻阅。在生活中,我们通过写日记的方式,记录自己的生活点滴,在未来的某天翻看日记,追忆逝去的青春。在工作中,我们通过写周报记录每周工作进度,该工作进度作为绩效的评判标准之一。在程序开发中,我们通过记录日志来了解程序的运行状况。比如:收集请求链路调用信息,汇总形成链路调用信息,用于系统分析。比如:...

2019-06-02 15:26:54 302

原创 【Redis】Redis持久化

Redis 中文网 http://www.redis.cn/topics/persistence.htmlRedis 英文网 https://redis.io/topics/persistenceRedis 是一款支持数据持久化的缓存中间件,在提供强大性能的同时支持数据持久化到内存。即使人为的重启,或者服务宕机重启都能够保证数据的恢复。这也使得 Redis 的应用个场景变得更加丰富,比如上...

2019-05-23 08:47:30 224

原创 【Redis】Redis内存回收机制

前置问题Q1、设置的 key 明明已经过期了,为啥 仍然占用内存?Q2、设置的 key 明明还没有过期,为啥 这个 key 就不见了?这两个问题,通过 Redis 内存回收机制能够得到完美的解答。Redis 内存回收机制Redis 在两种情况下会回收 key 占用的内存:用户主动设置过期时间,时间到了,被回收redis 中key达到了 redis 设置的 max_memory ...

2019-05-21 12:40:17 768 1

原创 【Redis】-【应用篇】Redis我使用过的那些场景

session 共享问题在 web 开发中,http 是无状态的协议,而为了保持会话状态,就需要维护一个列表,列表的数据格式为 key:value。http 通过携带 key 进行访问,后台通过 key 获取 value 值,来确定此次 http 请求会话。早期 该列表的维护保存在应用内存 session 中。在多机冗余部署的时候,会出现 session 共享的问题。业界有很多种解决方案,如...

2019-05-19 07:14:33 244

原创 【RabbitMQ】- 【应用篇】RabbitMq 实现延迟队列

推荐书籍:《RabbitMQ实战指南 》朱忠华 。欢迎购买正版书籍。想要 电子版参考的小伙伴,可以关注公众号 【WTF名字好难取】回复,【推荐书籍】,获取下载地址。本文参考:《RabbitMQ实战指南》4.2 , 4.3 ,4.4 章节,进行实现并落地。RabbitMq 实现延迟队列通过 RabbitMQ 延迟队列,我们需要关注的2个知识点(这里不进行知识普及,可以通过推荐书籍,官方网...

2019-05-09 21:46:12 1926 7

原创 【Redis】-【应用篇】分布式锁解决方案-Redis分布式锁

分布式锁在程序中,锁存在的意义便是锁定资源,限制资源的在某个时间点的操作权限。解决在并发情况下幂等操作等。而锁实现原理也很简单,就是针对某个方法或操作进行是否锁定的标记,并且该标记在应用内部所有线程可见。在单机情况下,想要达到该目的相对容易,但是在多机情况下,如果仍然以同样的方式维护锁标记,这时候就需要每个应用间进行锁标记的通信同步,这使得应用变得复杂,明显该方法不可取。于是乎,将针对方法...

2019-05-05 21:53:06 632

原创 mysql错误You must reset your password using ALTER USER statement before executing

安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个step 1: SET PASSWORD = PASSWORD('your new password');step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;step 3: flush privileges; 关闭密码校验mysql&gt;...

2018-09-17 17:30:25 380 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除