- 博客(229)
- 资源 (51)
- 收藏
- 关注
原创 Mac使用sdkman安装多版本jdk
SDKMAN是一个用于管理多个软件开发工具包(SDK)的工具,它可以方便地在命令行界面(CLI)和API中列出安装切换和移除SDK。它还可以为我们设置环境变量。它支持基于JVM的SDK,如JavaGroovyScalaKotlin等,以及MavenGradle等工具。SDKMAN是一个免费、轻量、开源的工具,用Bash编写。它支持所有主流的操作系统,可以轻松地安装在所有基于Unix的系统上。它还支持Bash和Zsh两种shell。最后打开你的.bashrc或.profile,找到并删除下面这几行。!!
2024-11-13 19:17:08 1090 1
原创 github fork别人的项目到自己仓库并进行贡献
原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/115587702 ©王赛超目录在桌面创建test目录切换到test目录创建并初始化git库链接到远程git仓库 -t main 使用 main 分支将远程git库下载到本地将目录下所有文件都增加到本地库中。提交更改到本地仓库将本地的master分支改为main分支, github为避免联想奴隶制。在持续的外界影响之下,默认分支由master改为main。但
2021-05-25 18:14:02 8079
原创 使用nohup [command] &程序仍然会挂断的问题 nohup+&不起作用
原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/115587702 ©王赛超这里写目录标题背景介绍难道是触发了panic恐慌导致程序宕机?问题复现第一种: 使用nohup启动,然后直接点击x号关闭SecureCRT。第二种: 使用nohup启动,然后等SecureCRT终端超时。第三种: 使用nohup启动,然后在终端执行 kill -1 发送SIGHUP信号给服务。产生的问题1.信号是谁发送的?2.no
2021-04-11 03:23:23 14579 7
原创 Go使用net/http标准库(三)源码学习之- serverHandler{c.server}.ServeHTTP(w, w.req)
原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/110351336 ©王赛超目录一. 搭建简单的web服务器二.分析一下serverHandler{c.server}.ServeHTTP(w, w.req)serverHandler.ServeHTTP()ServeMux.ServeHTTP()mux.Handler(r *Request)mux.handler(host, path string)mux
2020-11-29 20:31:40 1099
原创 Go使用net/http标准库(二)源码学习之- http.ListenAndServe()
这里写自定义目录标题在上一章https://blog.csdn.net/qq_34021712/article/details/109907490我们学习了http.HandleFunc()的源码,本章分析http.ListenAndServe(":8080", nil)函数。一.搭建简单的web服务器把之前用http包写一个最简单的hello world服务器代码拿过来,如下:func main() { http.HandleFunc("/", HelloServer) _ = h
2020-11-23 00:59:57 3779 1
原创 Go使用net/http标准库(一)源码学习之- http.HandleFunc()
目录go 版本一. 搭建简单的web服务器二.首先,先分析一下http.HandleFunc()这个函数http.HandleFunc()DefaultServeMux.HandleFunc()mux.Handle(pattern, HandlerFunc(handler))下一章分析 http.ListenAndServe(":8080", nil)。go 版本go version go1.15.1 darwin/amd64一. 搭建简单的web服务器对于Go,实现一个最简单的http serve
2020-11-21 21:00:53 4995 6
原创 go自动下载所有的依赖包 go module使用
今天在学习dubbo-go的时候,下载了dubbo-go的example,依赖的包太多了,之前都是手动下载某个依赖的包,现在手动一个一个 go get 那太麻烦了。因为我是搞java的,刚开始用go的时候感觉有点奇怪,go代码所依赖的所有的第三方库都放在GOPATH这个目录下面,这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决?总不能改包名吧,看了一下 dubbo-samples/golang/ 的代码 发现了有个 go.mod文件,百度一下 go mod
2020-10-18 17:25:11 51752 2
原创 Hibernate Validator自定义校验枚举类型
Bean Validation API定义了一整套标准约束注解,例如@NotNull, @Size等等。如果这些内置约束不够,我们可以轻松创建自定义约束。参考官方文档:https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#validator-customconstraints具体步骤如下:...
2020-01-29 12:20:22 3216
原创 Spring Boot使用Hibernate validator进行参数校验
原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/87545287 ©王赛超Spring Boot已经可以帮助我们快速构建一个web服务,针对请求的参数如果只在客户端进行数据有效性验证都不是安全有效的,我们可以进行抓包直接调用接口,所以我们需要在客户端做参数校验,同时后端服务也需要对参数进行校验才...
2020-01-29 12:19:30 911
翻译 go语言学习-写入文件 (三十六)
转载自:https://golangbot.com/write-files/在本教程中,我们将学习如何使用Go将数据写入文件。我们还将学习如何并发写入文件。本教程包含以下部分将字符串写入文件将字节写入文件逐行将数据写入文件追加到文件并发写入文件将字符串写入文件将字符串写入文件是最常见的文件写入操作之一,这很简单。它包括以下步骤。创建文件将字符串写入文件让我们马上看...
2019-01-13 20:07:12 2402
翻译 go语言学习-读取文件 (三十五)
转载自:https://golangbot.com/read-files/读取文件是所有编程语言中最常见的操作之一。本教程我们将了解如何使用 Go 读取文件。本教程包含以下部分:将整个文件读取到内存使用绝对文件路径将文件路径作为命令行标志传递将文件绑定在二进制文件中分块读取文件逐行读取文件将整个文件读取到内存将整个文件读取到内存是最基本的文件操作之一。我们可以借助 i...
2019-01-13 20:06:29 5594
翻译 go语言学习-反射 (三十四)
转载自:https://golangbot.com/reflection/反射是go语言中的高级特性之一,我会尽量将它讲的通俗易懂。本教程包含以下部分:什么是反射?为何需要在运行时检查变量的值,并确定变量的类型?reflect 包reflect.Type 和 reflect.Valuereflect.KindNumField() 和 Field() 方法Int() 和 St...
2019-01-13 20:05:28 727
翻译 go语言学习-头等函数 (三十三)
转载自:https://golangbot.com/first-class-functions/什么是头等函数支持头等函数的编程语言,可以把函数赋值给变量,也可以把函数作为其它函数的参数或者返回值。Go 语言支持头等函数。本教程我们会讨论头等函数的语法和用例。匿名函数让我们先从一个简单例子开始:将函数赋值给一个变量。package mainimport ( "fmt"...
2019-01-13 20:05:04 428
翻译 go语言学习-panic 和 recover (三十二)
转载自:https://golangbot.com/panic-and-recover/什么是 panic?在 Go 程序中,一般是使用错误来处理异常情况。对于程序中出现的大部分异常情况,错误就已经够用了。但在有些情况,当程序发生异常时,无法继续运行。在这种情况下,我们会使用 panic 来终止程序。当函数发生 panic 时,它会终止运行,在执行完所有的defer函数后,程序控制返回到该函...
2019-01-13 20:04:42 668
翻译 go语言学习-自定义错误(三十一)
转载自:https://golangbot.com/custom-errors/在上一个教程中,我们学习了 Go 中的错误是如何表示的,以及如何处理标准库里的错误。我们还学习了从标准库的错误中提取更多的信息。本教程介绍如何创建我们自己的自定义错误,我们可以在我们创建的函数和包中使用它们。我们会使用与标准库中相同的技术,来提供自定义错误的更多细节信息。使用 New 函数创建自定义错误创建自...
2019-01-13 20:04:23 630
翻译 go语言学习-错误处理(三十)
转载自:https://golangbot.com/error-handling/什么是错误?错误表示程序中的异常情况。假设我们正在尝试打开文件,文件系统中却不存在该文件。这是一种异常情况,它用错误来表示。在 Go 中,错误一直是很常见的。错误用内建的 error 类型来表示。就像其他的内建类型(如 int、float64 等),错误值可以存储在变量里、作为函数的返回值等等。示例现在...
2019-01-13 20:04:03 478
翻译 go语言学习-defer(二十九)
转载自:https://golangbot.com/defer/什么是 defer?defer语句的作用:含有defer语句的函数结束之前调用另外一个函数。定义看起来很复杂,我们通过一个例子就很容易理解。package mainimport ( "fmt")func finished() { fmt.Println("Finished finding lar...
2019-01-13 20:03:44 462
翻译 go语言学习-go中的OOP-多态(二十八)
转载自:https://golangbot.com/polymorphism/Go中的多态性是在接口interface的帮助下实现的。正如我们已经讨论过的,接口可以在Go中隐式实现。如果一个类型定义了某个接口中声明的所有方法,则该类型实现了这个接口。让我们看看,利用接口,如何在Go中实现多态性。使用接口实现多态任何一种类型,如何定义了某个接口中声明的所有方法,那么该类型就隐式实现了这个接口。...
2019-01-13 20:03:26 497
翻译 go语言学习-go中的OOP-组合取代继承(二十七)
转载自:https://golangbot.com/inheritance/Go语言不支持继承,但是它支持组合。组合的定义是“放在一起”,组合的一个例子是车的组成,一辆车是由轮子,发动机和其他组件组合而成。结构体嵌套组合Go中的组合可以通过将一种结构体类型嵌入另一种结构体类型来实现。博客文章是组合的经典例子。每篇博文都有标题,内容和作者信息,使用组合可以很好地表示它们。通过学习本教程后面的...
2019-01-13 20:02:55 566
翻译 go语言学习-go中的OOP-结构体取代类(二十六)
转载自:https://golangbot.com/structs-instead-of-classes/Go不是纯粹的面向对象编程语言。下面摘自Go的FAQs 解答了Go是否是面向对象的问题。翻译:可以说是,也可以说不是。虽然GO具有类型和方法,并且允许面向对象的编程风格,但是没有类型层次结构。Go中的”接口”概念提供了一种不同的特性,我们认为这种特性很容易使用,而且在某些方面更通用。在g...
2019-01-13 20:02:32 528
翻译 go语言学习-Mutex(二十五)
转载自:https://golangbot.com/mutex/在本教程中,我们将了解Mutex(互斥锁)。我们还将学习如何使用Mutex和信道解决竞争问题。临界区在学习Mutex之前,了解并发编程中关键概念非常重要。当程序并发运行时,多个协程不应该同时访问修改共享资源的代码。修改共享资源的这段代码称为临界区。例如,假设我们有一段代码,将一个变量 x 自增 1。x = x + 1 如...
2019-01-13 20:02:07 341
翻译 go语言学习-select(二十四)
转载自:https://golangbot.com/select/什么是selectselect语句用于从多个读写通道中进行选择。select语句将会阻塞,直到有一个读写通道就绪。如果有多个读写通道就绪,会从中任意选择一个。select语法类似switch语句,除了每个case语句必须是通道操作。让我们深入代码以便更好的理解。package mainimport ( "fmt" "...
2019-01-13 20:01:41 398
翻译 go语言学习-缓冲信道与工作池(二十三)
转载自:https://golangbot.com/buffered-channels-worker-pools/什么是缓冲信道我们在上一个教程中讨论的所有信道基本上都是的无缓冲区的信道,正如我们在 信道教程中详细讨论的那样,对一个无缓冲的信道进行发送 和 接受 数据 都是阻塞的。我们也可以创建一个带缓冲区的信道,往信道中发送数据时,只有当缓冲区满的情况下才会阻塞;类似的,我们从信道中接受数...
2019-01-13 20:01:20 525
翻译 go语言学习-信道(二十二)
转载自:https://golangbot.com/channels/在上一篇教程中,我们讨论了如何使用协程在go中实现并发。在本教程中,我们将讨论有关信道以及如何使用信道实现协程间通信。什么是信道信道(Channel)可以被认为是协程之间通信的管道。类似于水在管道中从一端流向另一端一样,数据可以从信道的一端发送并在另一端接收。声明信道每个信道都有一个与之关联的类型。此类型是该信道允许传...
2019-01-13 20:00:56 801
翻译 go语言学习-并发简介(二十)
转载自:https://golangbot.com/concurrency/Go是一种并发语言,而不是并行语言。在讨论如何在Go中处理并发之前,我们必须首先了解什么是并发以及它与并行的区别。什么是并发?并发是同时处理大量事情的能力。最好用一个例子来解释。假设一个人喜欢慢跑。在他早上的慢跑时,他的鞋带开了。现在他停下来系鞋带,然后继续慢跑。这就是典型的并发。这个人有能力处理慢跑和系鞋带两件事...
2019-01-13 20:00:09 298
翻译 go语言学习-协程(二十一)
转载自:https://golangbot.com/goroutines/在上一篇教程中,我们讨论了并发,以及并发和并行的区别。在这篇教程中我们将讨论在Go中如何通过Go协程实现并发。什么是协程?Go 协程(Goroutine)是与其他函数或方法一起并发运行的函数或方法。协程可以被认为是轻量级线程。与线程相比,创建协程的成本很小。因此在Go中同时运行上千个协程是很常见的。Go 协程相比于线...
2019-01-13 19:59:35 456
翻译 go语言学习-接口_2(十九)
转载自:https://golangbot.com/interfaces-part-2/这是介绍接口的第二篇。如果你还没有阅读第一篇,可以在这里阅读。使用指针接收器和值接收器实现接口我们在第1部分中讨论的所有示例接口都是使用值接收器实现的。还可以使用指针接收器实现接口。在使用指针接收器实现接口时需要注意一些细微之处。让我们使用以下程序来了解。package mainimport "fm...
2019-01-13 19:59:12 335
翻译 go语言学习-接口_1(十八)
转载自:https://golangbot.com/interfaces-part-1/什么是接口在面向对象语言中,接口一般被定义为 :接口定义了对象的一系列行为。接口仅仅指定了一个对象应该做什么。具体怎么做(实现细节)是由对象决定的。在 Go 中,接口是一组方法签名。当一个类型定义了所有接口里的方法时,就说这个类型实现了这个接口。这和 面向对象OOP 很像。接口指定了一个类型应该具有什么方...
2019-01-13 19:58:53 339
翻译 go语言学习-方法(十七)
转载自:https://golangbot.com/methods/什么是方法方法是一个具有特殊的接收器类型的函数,在 func 关键字和函数名之间加入了一个特殊的接收器类型。该接收器可以是结构体类型或非结构体类型。接收器可以在方法内部访问。以下是创建方法的语法。func (t Type) methodName(parameter list) { }上面的代码片段创建了一个名为me...
2019-01-13 19:58:34 396
翻译 go语言学习-结构体(十六)
转载自:https://golangbot.com/structs/什么是结构体?结构体是用户定义的类型,表示若干个字段的集合。有时候应该将多个数据分组到一个整体中,而不是将每个数据作为单独的类型进行维护。这种情况下可以使用结构体。例如,一个员工有 firstName、lastName 和 age 三个属性,而把这些属性组合在一个结构体 employee 中就很合理。结构体的声明type...
2019-01-13 19:58:14 543
翻译 go语言学习-指针(十五)
转载自:https://golangbot.com/pointers/什么是指针指针是存储另一个变量的内存地址的变量。在上图中,变量 b 的值是 156,在内存中的地址为 0x1040a124 。变量 a 存储了变量 b 的地址。现在可以说 a 指向 b。指针的声明* T是指针变量的类型,它指向类型T的值。让我们写一些代码。package mainimport ( "fmt"...
2019-01-13 19:57:51 490
翻译 go语言学习-字符串(十四)
转载自:https://golangbot.com/strings/String类型在Go中值得特别提到,因为与其他语言相比,它们的实现方式有所不同。什么是字符串在 Go 中字符串是 字节切片。可以通过将内容放在双引号 "" 之间的方式来创建一个字符串。让我们看一个简单的例子,该例子创建并打印一个字符串:package mainimport ( "fmt")func main(...
2019-01-13 19:57:26 328 1
翻译 go语言学习-map(十三)
转载自:https://golangbot.com/maps/什么是 map?Map 是 Go 中的内置类型,它将key与value相关联。可以通过key获取相应的value。如何创建 map?可以通过将key和value的类型传递给make函数来创建map。创建map的语法为:make(map[type of key]type of value),例如:personSalary := ...
2019-01-13 19:57:06 271
翻译 go语言学习-变参函数(十二)
转载自:https://golangbot.com/variadic-functions/什么是变参函数?变参函数是指可以接受可变数量的参数的函数。语法如果函数的最后一个参数表示为...T,则该函数可以接受任意数量T类型参数。注意:必须是参数列表的最后一个参数才可以指定为可变参数。通过示例来理解可变函数如何工作你有没有想过,为什么 append 函数可以追加任意数量的值到切片中?这是...
2019-01-13 19:56:44 551
翻译 go语言学习-数组与切片(十一)
转载自:https://golangbot.com/arrays-and-slices/数组数组是同一类型的元素的集合。例如,整数 5, 8, 9, 79, 76 的集合就构成了一个数组。Go不允许在数组中混合使用不同类型的元素(例如包含整数和字符串的数组)。数组是一种非常有用的数据结构,因为其占用的内存是连续分配的。由于内存连续,CPU 能把正在使用的数据缓存更久的时间。而且内存连续很容易...
2019-01-13 19:55:57 378
翻译 go语言学习-switch语句(十)
转载自:https://golangbot.com/switch/switch是一个条件语句,用于将一个表达式的结果与可能存在的值列表 进行比较,并根据匹配的结果执行对应的代码块。它可以被认为是编写多个if else子句的替代方式。举例是说明问题的最好方式,让我们从一个简单的示例开始,程序接受一个手指号,并输出该手指号对应的的名称。例如,1是拇指,2是食指等。package mainim...
2019-01-13 19:55:28 471
翻译 go语言学习-循环语句(九)
转载自:https://golangbot.com/loops/循环语句用于重复执行代码块。for语句是Go中唯一可用的循环。Go没有while或do while循环,这些循环存在于其他语言中,如C.java。for循环语法for initialisation; condition; post { }initialisation 为初始化语句,该语句仅执行一次。initialisa...
2019-01-13 19:55:01 246
翻译 go语言学习-if else 语句(八)
转载自:https://golangbot.com/if-statement/if是条件语句。if语句的语法是:if condition { }如果 condition 为 true,那么就执行 { 和 } 之间的代码。与其它语言(如C语言)不同,即使 {} 之间只有一条语句,{} 也是必需的。if语句后面还具有可选else if和else语句:if condition {} ...
2019-01-13 19:54:42 900
翻译 go语言学习-包(七)
转载自:https://golangbot.com/packages/什么是包?为什么使用包?到目前为止,我们已经看到了GO程序:它只有一个文件,它有一个主函数和几个其他函数。在实际场景中,这种在一个文件中编写所有源代码的方法是行不通的。以这种方式编写的代码是不可能重用和维护的。包(package)用于解决这样的问题。包用于组织go源代码以获得更好的可重用性和可读性。软件包提供了代码的分隔,...
2019-01-13 19:54:18 614
apr-1.5.2.tar.gz,apr-util-1.5.2.tar.gz
2017-06-04
Dubbo视频教程--基础篇--第14节--持续集成篇--Maven私有库和本地库的安装与配置(Sonatype Nexus + Maven)2.pdf
2017-05-26
Dubbo视频教程--基础篇--第12节--持续集成篇--SVN版本管理系统的安装安装步骤.pdf
2017-05-26
Spring配置Freemarker视图解析器,前台页面全部使用freemarker渲染
2017-05-03
SpringBoot整合Jsp,支持java -jar方式启动
2018-04-17
kafka配置SSL(shell脚本)
2018-04-11
当当config-toolkit配置中心源码
2018-03-30
SpringBoot整合rocketmq事务消息
2018-02-13
jmeter测试dubbo请求
2018-01-02
使用Jmeter测试java请求
2017-12-22
SpringBoot整合dubbo
2017-08-24
Spring Boot整合ActiveMQ
2017-08-24
Spring Boot整合redis
2017-08-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人