echola 个人博客

脚踏实地,放飞梦想

MyBatis系列-Mybatis源码之 Log的实现流程(4)

"MyBatis系列-Mybatis源码之 Log的实现流程(4)"

本篇文章内容 Mybatis的日志如何配置,如何加载配置? 核心接口和实现类 如何实现只打印SQL,不打印结果集? 如何实现只打印部分Mapper的SQL? 官方文档: http://www.mybatis.org/mybatis-3/zh/logging.html 从配置开始 我们从Mybatis配置文件中的日志配置开始,来看看它到底是怎么实现的 <con...

MyBatis系列-Mybatis 源码之Cache(3)

"MyBatis系列-Mybatis 源码之Cache(3)"

缓存的使用场景 通过复杂业务计算得来的数据,在计算过程中可能耗费大量的时间,需要将数据缓存 读多写少的数据 缓存设计的要点 缓存的容量 缓存的有效时间 实践中可能存在的问题 缓存穿透 访问的缓存不存在,直接去访问数据库。通常查找的key没有对应的缓存,可以设计为返回空值,不去查找数据库。 缓存雪崩 大量的缓存穿透会导致有大量请求...

MyBatis系列-MyBatis 源码之Plugins(2)

"MyBatis系列-MyBatis 源码之Plugins(2)"

可以做什么? 可以拦截Mybatis的核心操作流程并改造。主要包括对以下接口的以下方法: 接口 方法 描述 Executor update, query, flushStatements, commit, rollback, getTransaction, close, isClo...

MyBatis系列-整体大纲(1)

"MyBatis系列-整体大纲(1)"

写在开头 Mybatis作为Java开发人员必备的技能,除了掌握好基本的用法外,还可以通过学习源码来了解作者的设计思路与方法,灵活应用内置的各种工具。Mybatis作为常用框架,相比Spring,代码结构更加简单,代码量相对较少。因此如果第一次系统的研究一个框架的源码,从Mybatis开始无疑是一个好的选择。 整体: 所在包 说明 地...

网站架构要素

"系统架构关注点及其实践"

网站架构要素 性能 现象 网站慢,响应时间,TPS 最佳实践: 浏览器: 浏览器缓存、页面压缩、减少cookie传输,减少http请求,合并CSS,图片,JS,启用压缩 网络: CDN,反向代理,缓存热点文件 服务器: 缓存数据(分布式缓存、服务器本地缓存) 异步操作 通过消息消除峰值 多线程:主要包括将对象设计为无状态对...

Jvm拾遗

layout: post title: “JVM拾遗” subtitle: “ "JVM内存划分,GC,调优等,不断更新中"” date: 2018-07-12 12:00:00 author: “echola” header-img: “img/post-bg-2015.jpg” tags: - Java基础 — JVM内部结构 程序计...

SpringCloud技能树

"SpringCloud常用组件及其作用"

SpringCloud组件 部署平台 生产级应用

Zookeeper 监控节点

"Zookeeper 监控节点在线离线"

场景 需要做一个监控服务,监控终端服务是否在线。 原理 利用Znode临时节点的创建、删除的特性 客户端活跃时,临时节点就是有效的。当客户端与ZooKeeper集合断开连接时,临时节点会自动删除 步骤 watcher监控端创建一个永久型的Znode,并注册这个node的子节点变更事件。 service服务端创建临时性子节点 代码 依赖包: ...

SpringBoot与JWT

"Java Web Token的原理和SpringBoot的整合"

原理 解决了哪些问题: 和session相比不用在server端保存一个连接客户端的会话 没有将生成的token保存到server端,所以即使每次请求是不同的服务端,也可以运行,实现了分布式。 JSON Web Token结构 结构: xxxx.yyyy.zzzzz Header Header包含两部分:1、token的类型,这里是JWT,2、所使用的h...