- 博客(49)
- 收藏
- 关注
原创 golang观察者设计模式
观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象的状态发生变化时,所有依赖于它的观察者对象都会得到通知并自动更新。观察者模式使得对象之间的耦合度降低,提高了系统的灵活性和可维护性。
2025-01-11 16:18:11
573
原创 go定时任务cron
在 Go 语言中,cron库是用来模拟 Unix cron 的行为的第三方库,它允许你在 Go 应用程序中调度任务。一个流行的cron库是,它提供了简单易用的 API 来创建定时任务。以下是如何使用。
2025-01-04 20:14:54
288
原创 docker-compos mysql5.7主从配置
下面几个参数需要与主节点的信息对应。进入主节点docker容器。#创建账号用于从机连接主机。查看binglog信息。在配置文件目录下使用。
2024-12-28 17:17:20
503
原创 数学学院项目开发总结
表单的审核流转: 班级审批基本信息审批 - > 学生会纪权部道德币审核 ,学生会组织部材料审核 - > 学生会培训成绩审核。表单的审核流转: 班级审批基本信息审批 - > 学生会纪权部道德币审核 ,学生会组织部材料审核 - > 学生会培训成绩审核。学生会组织部材料审核 ,学生会培训成绩审核可以班级为单位导出审核通过的入团人员的docx文档。通过创建新的三张表分别记录:活动信息,学生提交的表单信息和状态,和学生提交的文件材料。活动的创建和关闭和信息提交和审核时间的管理。项目内容独立于其他内容需要设计新的表。
2024-12-11 12:12:05
609
原创 jwt简介和在go中的简单使用
JSON Web 令牌 (JWT) 是一种开放标准 ([RFC 7519](https://tools.ietf.org/html/rfc7519)),它定义了一种紧凑且自包含的方式,用于将信息作为 JSON 对象在各方之间安全地传输。此信息是经过数字签名的,因此可以验证和信任。可以使用密钥(使用 **HMAC** 算法)或使用 **RSA** 或 **ECDSA** 的公钥/私钥对对 JWT 进行签名。
2024-12-07 21:27:20
1129
原创 axios的认识与基本使用
Axios 是一个基于网络请求库,作用于node.js和浏览器中。它是的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.jshttp模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。
2024-11-30 18:08:29
1587
原创 认识casbin
Casbin 是一个强大的、高效的开源访问控制库,支持各种访问控制模型,包括但不限于 ACL(Access Control List)、RBAC(Role-Based Access Control)、ABAC(Attribute-Based Access Control)、ACL + RBAC 混合模型等。Casbin 提供了一套统一的 API 接口,使得开发者可以方便地在不同项目中集成访问控制功能。
2024-11-16 22:06:13
1145
原创 gin中间件
全局中间件:应用于所有路由,通常用于日志记录、性能监控等。组中间件:应用于特定的路由组,通常用于认证、权限控制等。单个路由中间件:应用于特定的路由,通常用于特定的请求处理逻辑。
2024-11-02 21:29:24
606
原创 go gorm简单使用方法
GORM 是 Go 语言中一个非常流行的 ORM(对象关系映射)库,它允许开发者通过结构体来定义数据库表结构,并提供了丰富的 API 来操作数据库。
2024-10-27 17:33:24
904
原创 Golang日志库logrus的介绍与使用
Logrus 是一个流行的 Go 语言日志库,它提供了结构化日志和多种日志级别的功能。Logrus 非常灵活,支持自定义日志格式和输出,被许多 Go 语言项目广泛使用
2024-10-20 17:47:22
1197
原创 go+bootstrap实现简单的注册登录和管理
使用,go+mysql实现了用户的登录,注册,和管理的简单功能,不同用户根据不同权限显示不同的内容1、用户可以注册、登录;2、登录后可以查看所有的注册的用户;3、管理员操作对用户有删除和编辑权限。(不使用3方的web框架)4、普通用户登录后可以查看所有用户,不能编辑、删除;main代码
2024-10-14 08:29:12
725
原创 SQL DQL查询语句
SQL(Structured Query Language)中的DQL指的是数据查询语言,它用于从数据库中检索数据。
2024-09-22 17:08:59
1298
1
原创 使用docker配置wordpress
配置php.ini设置wordpress的文件上传大小(不配置这个的话,wordpress会限制文件上传大小为2M,会严重影响网站的建设)配置php.ini设置wordpress的文件上传大小(不配置这个的话,wordpress会限制文件上传大小为2M,会严重影响网站的建设)-e MYSQL_ROOT_PASSWORD=123456 这个指令配置的是root用户的密码为123456,可以自行更改。docker在新版本中(23+)默认已经安装了docker-compose了,不需要额外安装了。
2024-09-11 12:37:20
2355
原创 linux Vim的安装和基本使用
Vim是一个高度可定制的文本编辑器,源自Unix系统的vi编辑器。它被广泛用于类Unix系统中,包括Linux、Mac OS和Windows平台。Vim特别受到程序员的青睐,因为它提供了丰富的编程功能,如代码补全、编译及错误跳转等。这些功能使得Vim不仅仅是一个简单的文本编辑器,而更像是一个专为程序开发设计的工具。Vim的设计理念基于命令的组合。用户可以通过学习各种文本移动和编辑命令来提高编辑效率。
2024-08-31 11:36:21
1234
原创 linux常用指令
linux常用指令文件和目录操作cd /home/user:切换到/home/user目录。pwd:显示当前工作目录的路径,例如/home/user/documents。ls -l:以详细列表形式显示当前目录下的文件和目录。mkdir new_folder:在当前目录下创建一个名为new_folder的新目录。rm file.txt:删除当前目录下的file.txt文件。cp file.txt /home/user/backup/:将file.txt复制到/home/user/backup
2024-08-26 20:17:09
485
原创 golang Goroutine协程和Channel管道
Goroutine 是 Go 语言中实现并发的核心概念 它是一个函数或方法,可以独立于其他函数或方法运行 Go 语言的运行时会为每个 Goroutine 分配很小的栈内存(初始栈大小通常为几千字节),并根据需要自动进行栈的扩展。
2024-08-05 20:09:29
1096
原创 go test单元测试
Go语言中的测试依赖go test命令。go test命令是用来运行测试代码的工具。测试代码通常与要测试的代码放在同一个包中,并且测试文件通常以_test.go结尾。go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的源代码文件都是go test测试的一部分,不会被go build编译到最终的可执行文件中。测试文件通常与被测试的代码文件命名相同,但以_test.go结尾。例如,如果你有一个名为math.go的文件,其测试文件应该命名为。
2024-07-31 22:02:43
1139
原创 golang JSON序列化
(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于, Standard ECMA-262 3rd Edition - December 1999的一个子集。
2024-07-30 16:55:44
933
原创 golang 文件
文件是计算机系统中用于存储和管理的 数据集合,具有唯一的名称,存在于存储介质上,包含创建、修改等属性,通过文件系统进行组织,用户可进行读取、写入等操作。
2024-07-27 11:33:45
2227
1
原创 golang 接口
接口定义了一组方法,这些方法没有具体的实现。接口类型的变量可以存储任何实现了这些方法的类型的值。// 更多方法...在Go语言中,接口值是指存储了实现某个接口的具体类型值的变量。接口值由两部分组成:1.动态类型:这是接口值当前存储的实际类型。2.动态值:这是实际存储的值,该值必须实现了接口中定义的所有方法。
2024-07-24 21:47:59
1396
原创 golang 命令行计算器,中缀表达式转后缀表达式并计算
'+': 1,'-': 1,'*': 2,'/': 2,'(': 0,// 实现栈结构// 创建一个新的初始栈// 在栈顶放入数据//append函数:在原切片的末尾添加元素// 栈最上面的数据出栈return nil//把栈顶下移一位// 查看栈顶第一个元素return nil// 判断栈是否空。
2024-07-16 16:55:25
532
原创 golang学习笔记 结构体
结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体中有一个或多个成员。type 语句设定了结构体的名称。type 结构体名称 struct{字段名 数据类型 字段名 数据类型 字段名 数据类型 …a intb stringc byte//输出默认值//{0 0}//赋值后输出s1.a = 1s1.b = "张三"s1.c = 35//{0 0}//{1 张三 35}内存分析。
2024-07-09 21:54:23
386
原创 golang学习笔记 map
1.映射(map)Go语言中内置的一种类型,它将键值对相关联,我们可以通过键 key来获取对应的值 value。类似其它语言的集合2.基本语法var map变量名 map[keytype]valuetypePS:key、value的类型:bool、数字、string、指针、channel、还可以是只包含前面几个类型的接口、结构体、数组PS:key通常为int、string类型,value通常为数字(整数、浮点数)、string、map、结构体。
2024-07-09 16:37:08
427
原创 golang学习笔记 切片
1.方式1:定义一个切片,然后让切片去引用一个已经创建好的数组。2.方式2:通过make内置函数来创建切片。基本语法: var切片名[type= make(0,len,[cap])make底层创建一个数组,对外不可见,只能通过切片对数组进行操作3.方式3:定一个切片,直接就指定具体数组,使用原理类似make的方式。
2024-07-09 10:24:29
333
原创 golang学习笔记 数组
数组是具有相同 唯一类型 的一组以编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以 [5] int 和 [10] int 是属于不同类型的。数组的编译时值初始化是按照数组顺序完成的。
2024-07-06 16:45:06
715
原创 golang学习笔记 defer
在函数中,程序员经常需要创建资源为了在函数执行完毕后,及时的释放资源,Go的设计者提供defer关键字。在defer后面语句被存入栈时,相关变量的值也会被存入栈中不会随着后面变量值的改变而改变。
2024-07-04 17:45:30
515
原创 golang学习笔记 init函数
1.init函数:初始化函数,可以用来进行一些初始化的操作每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用。2.全局变量定义,init函数,main函数的执行流程?
2024-07-04 17:44:14
382
原创 golang学习笔记 闭包
返回的是一个医名函数,但是这个匿名的数引用到函数外的变量/参数,因此这个医名的数就和变量/参数形成一个整体,构成闭包。2.闭包的本质:闭包本质依旧是一个匿名函数,只是这个函数引入外界的变量/参数匿名函数+引用的变量/参数=闭包。闭包中使用的变量/参数会一直保存在内存中,所以会一直使用—》意味着闭包不可滥用。1.什么是闭包:闭包就是一个函数和与其相关的引用环境组合的一个整体。
2024-07-04 17:42:16
478
原创 golang学习笔记 包
7.如果你要编译成一个可执行程序文件,就需要将这个包声明为 main,即 package main .这个就是一个语法规范,如果你是写一个库,包名可以自定义。3.为了让其它包的文件,可以访问到本包的函数,则该函数名的首字母需要大写,类似其它语言的 public ,这样才能跨包访问。1.在给一个文件打包时,该包对应一个文件夹,比如这里的 utils 文件夹对应的包名就是 utils文件的包名通常和。5.如果包名较长,Go 支持给包取别名,注意细节:取别名后,原来的包名就不能使用了。
2024-07-03 20:09:57
392
原创 go导包出现搜索不到包的错误,提示包不在go源码包的错误解决办法
现在的go默认启用gomod,传统的导包方式在gomod开启的情况下会先到gomod文件里找包,然后会搜索go源码包,这种情况下是找不到直接导的包。此时就可以关闭gomod功能使用传统导包方式,或者不关闭gomod在项目文件路径下命令行使用go mod init初始化一个gomod文件,本地导包没有第三方依赖的情况下,这个gomod文件里面的内容不用动就能实现导包。此时“GOMOD=off”表示go modules 功能处于关闭状态。此时GO111MODULE=on表示go mod 功能处于开启状态。
2024-07-03 17:54:42
390
2
原创 golang学习笔记 函数
为完成某一功能的程序指令(语句)的集合,称为函数。基本语法: type 自定义数据类型名 数据类型import ("fmt"fmt.Printf("a的数据类型是%T,a的值为%v\n",a,a)c := test//将b定义为func(int)数据类型//定义一个函数,可以作为数据类型使用type myFunc func(int)//给func(int)定义名字为jjj,并用做test01函数作为形参。
2024-07-02 22:11:28
346
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人