朝花夕誓
12
08
MyBatis源码(5)-缓存机制 MyBatis源码(5)-缓存机制
一、MyBatis 缓存简介①、一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap
2022-12-08
06
MyBatis源码(4)-插件机制 MyBatis源码(4)-插件机制
一、介绍一般开源框架都会提供扩展点,让开发者自行扩展,从而完成逻辑的增强。 通过Mybatis插件可以实现对框架的扩展,来实现自定义功能,并且对于用户是无感知的。 基于插件机制可以实现了很多有用的功能,比如说分页,字段加密,监控等功能,这种
2022-12-06
03
线上诊断工具Arthas 线上诊断工具Arthas
一、介绍Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题
2022-12-03
11
27
time time
一、时间类型1、TimeGo 语言中使用time.Time类型表示时间。我们可以通过time.Now函数获取当前的时间对象,然后从时间对象中可以获取到年、月、日、时、分、秒等信息。 // timeDemo 时间对象的年月日时分秒 func
2022-11-27
23
函数 函数
一、函数语法1、函数定义Go语言中定义函数使用func关键字,具体格式如下: func 函数名(参数)(返回值){ 函数体 } 其中: 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能
2022-11-23
22
flag flag
一、os.Args如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。 package main import ( "fmt" "os" ) //os.Args demo fu
2022-11-22
22
log log
Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。 一、使用Loggerlog包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系
2022-11-22
21
结构体 结构体
一、Go面向对象说明 Golang也支持面向对象编程(OOP),但是和传统的面向对象语言有区别,不是存粹的面向对象语言。所以说Golang支持面向对象编程特性更合适。 Golang中没有类(Class),Go语言中的结构体(struct)和
2022-11-21
21
fmt fmt
fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。 一、向外输出标准库fmt提供了以下几种输出相关函数。 PrintPrint系列函数会将内容输出到系统的标准输出,区别在于Print
2022-11-21
20
指针 指针
一、简介区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。 要搞明白Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。 任何程序数据载入内存后,在内存都有他们的地址,这就是指针。而为了保存一个数据在内
2022-11-20
20
数组、切片、map 数组、切片、map
一、Array数组1、数组定义数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 var 数组变量名 [元素数量]T 比如:var a [5]int, 数组的长度必须是常量,并
2022-11-20
16
MyBatis源码(3)-代理机制 MyBatis源码(3)-代理机制
为什么 MyBatis 只有接口确能实现操作数据库功能? 一、生成代理对象如果是 spring boot 项目,在项目启动时就会调用 getMapper 方法获取代理类,并注入到容器中 1、入口:DefaultSqlSession#getM
2022-11-16
7 / 24