4 这个名字想了很久

尚未进行身份认证

向大神的目标前进!

等级
TA的排名 3k+

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

Spring Boot使用Hibernate validator进行参数校验

原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/87545287  ©王赛超Spring Boot已经可以帮助我们快速构建一个web服务,针对请求的参数如果只在客户端进行数据有效性验证都不是安全有效的,我们可以进行抓包直接调用接口,所以我们需要在客户端做参数校验,同时后端服务也需要对参数进行校验才...

2020-01-29 12:19:30

go语言学习-写入文件 (三十六)

转载自:https://golangbot.com/write-files/在本教程中,我们将学习如何使用Go将数据写入文件。我们还将学习如何并发写入文件。本教程包含以下部分将字符串写入文件将字节写入文件逐行将数据写入文件追加到文件并发写入文件将字符串写入文件将字符串写入文件是最常见的文件写入操作之一,这很简单。它包括以下步骤。创建文件将字符串写入文件让我们马上看...

2019-01-13 20:07:12

go语言学习-读取文件 (三十五)

转载自:https://golangbot.com/read-files/读取文件是所有编程语言中最常见的操作之一。本教程我们将了解如何使用 Go 读取文件。本教程包含以下部分:将整个文件读取到内存使用绝对文件路径将文件路径作为命令行标志传递将文件绑定在二进制文件中分块读取文件逐行读取文件将整个文件读取到内存将整个文件读取到内存是最基本的文件操作之一。我们可以借助 i...

2019-01-13 20:06:29

go语言学习-反射 (三十四)

转载自:https://golangbot.com/reflection/反射是go语言中的高级特性之一,我会尽量将它讲的通俗易懂。本教程包含以下部分:什么是反射?为何需要在运行时检查变量的值,并确定变量的类型?reflect 包reflect.Type 和 reflect.Valuereflect.KindNumField() 和 Field() 方法Int() 和 St...

2019-01-13 20:05:28

go语言学习-头等函数 (三十三)

转载自:https://golangbot.com/first-class-functions/什么是头等函数支持头等函数的编程语言,可以把函数赋值给变量,也可以把函数作为其它函数的参数或者返回值。Go 语言支持头等函数。本教程我们会讨论头等函数的语法和用例。匿名函数让我们先从一个简单例子开始:将函数赋值给一个变量。package mainimport ( "fmt"...

2019-01-13 20:05:04

go语言学习-panic 和 recover (三十二)

转载自:https://golangbot.com/panic-and-recover/什么是 panic?在 Go 程序中,一般是使用错误来处理异常情况。对于程序中出现的大部分异常情况,错误就已经够用了。但在有些情况,当程序发生异常时,无法继续运行。在这种情况下,我们会使用 panic 来终止程序。当函数发生 panic 时,它会终止运行,在执行完所有的defer函数后,程序控制返回到该函...

2019-01-13 20:04:42

go语言学习-自定义错误(三十一)

转载自:https://golangbot.com/custom-errors/在上一个教程中,我们学习了 Go 中的错误是如何表示的,以及如何处理标准库里的错误。我们还学习了从标准库的错误中提取更多的信息。本教程介绍如何创建我们自己的自定义错误,我们可以在我们创建的函数和包中使用它们。我们会使用与标准库中相同的技术,来提供自定义错误的更多细节信息。使用 New 函数创建自定义错误创建自...

2019-01-13 20:04:23

go语言学习-错误处理(三十)

转载自:https://golangbot.com/error-handling/什么是错误?错误表示程序中的异常情况。假设我们正在尝试打开文件,文件系统中却不存在该文件。这是一种异常情况,它用错误来表示。在 Go 中,错误一直是很常见的。错误用内建的 error 类型来表示。就像其他的内建类型(如 int、float64 等),错误值可以存储在变量里、作为函数的返回值等等。示例现在...

2019-01-13 20:04:03

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

go语言学习-go中的OOP-多态(二十八)

转载自:https://golangbot.com/polymorphism/Go中的多态性是在接口interface的帮助下实现的。正如我们已经讨论过的,接口可以在Go中隐式实现。如果一个类型定义了某个接口中声明的所有方法,则该类型实现了这个接口。让我们看看,利用接口,如何在Go中实现多态性。使用接口实现多态任何一种类型,如何定义了某个接口中声明的所有方法,那么该类型就隐式实现了这个接口。...

2019-01-13 20:03:26

go语言学习-go中的OOP-组合取代继承(二十七)

转载自:https://golangbot.com/inheritance/Go语言不支持继承,但是它支持组合。组合的定义是“放在一起”,组合的一个例子是车的组成,一辆车是由轮子,发动机和其他组件组合而成。结构体嵌套组合Go中的组合可以通过将一种结构体类型嵌入另一种结构体类型来实现。博客文章是组合的经典例子。每篇博文都有标题,内容和作者信息,使用组合可以很好地表示它们。通过学习本教程后面的...

2019-01-13 20:02:55

go语言学习-go中的OOP-结构体取代类(二十六)

转载自:https://golangbot.com/structs-instead-of-classes/Go不是纯粹的面向对象编程语言。下面摘自Go的FAQs 解答了Go是否是面向对象的问题。翻译:可以说是,也可以说不是。虽然GO具有类型和方法,并且允许面向对象的编程风格,但是没有类型层次结构。Go中的”接口”概念提供了一种不同的特性,我们认为这种特性很容易使用,而且在某些方面更通用。在g...

2019-01-13 20:02:32

go语言学习-Mutex(二十五)

转载自:https://golangbot.com/mutex/在本教程中,我们将了解Mutex(互斥锁)。我们还将学习如何使用Mutex和信道解决竞争问题。临界区在学习Mutex之前,了解并发编程中关键概念非常重要。当程序并发运行时,多个协程不应该同时访问修改共享资源的代码。修改共享资源的这段代码称为临界区。例如,假设我们有一段代码,将一个变量 x 自增 1。x = x + 1 如...

2019-01-13 20:02:07

go语言学习-select(二十四)

转载自:https://golangbot.com/select/什么是selectselect语句用于从多个读写通道中进行选择。select语句将会阻塞,直到有一个读写通道就绪。如果有多个读写通道就绪,会从中任意选择一个。select语法类似switch语句,除了每个case语句必须是通道操作。让我们深入代码以便更好的理解。package mainimport ( "fmt" "...

2019-01-13 20:01:41

go语言学习-缓冲信道与工作池(二十三)

转载自:https://golangbot.com/buffered-channels-worker-pools/什么是缓冲信道我们在上一个教程中讨论的所有信道基本上都是的无缓冲区的信道,正如我们在 信道教程中详细讨论的那样,对一个无缓冲的信道进行发送 和 接受 数据 都是阻塞的。我们也可以创建一个带缓冲区的信道,往信道中发送数据时,只有当缓冲区满的情况下才会阻塞;类似的,我们从信道中接受数...

2019-01-13 20:01:20

go语言学习-信道(二十二)

转载自:https://golangbot.com/channels/在上一篇教程中,我们讨论了如何使用协程在go中实现并发。在本教程中,我们将讨论有关信道以及如何使用信道实现协程间通信。什么是信道信道(Channel)可以被认为是协程之间通信的管道。类似于水在管道中从一端流向另一端一样,数据可以从信道的一端发送并在另一端接收。声明信道每个信道都有一个与之关联的类型。此类型是该信道允许传...

2019-01-13 20:00:56

go语言学习-并发简介(二十)

转载自:https://golangbot.com/concurrency/Go是一种并发语言,而不是并行语言。在讨论如何在Go中处理并发之前,我们必须首先了解什么是并发以及它与并行的区别。什么是并发?并发是同时处理大量事情的能力。最好用一个例子来解释。假设一个人喜欢慢跑。在他早上的慢跑时,他的鞋带开了。现在他停下来系鞋带,然后继续慢跑。这就是典型的并发。这个人有能力处理慢跑和系鞋带两件事...

2019-01-13 20:00:09

go语言学习-协程(二十一)

转载自:https://golangbot.com/goroutines/在上一篇教程中,我们讨论了并发,以及并发和并行的区别。在这篇教程中我们将讨论在Go中如何通过Go协程实现并发。什么是协程?Go 协程(Goroutine)是与其他函数或方法一起并发运行的函数或方法。协程可以被认为是轻量级线程。与线程相比,创建协程的成本很小。因此在Go中同时运行上千个协程是很常见的。Go 协程相比于线...

2019-01-13 19:59:35

go语言学习-接口_2(十九)

转载自:https://golangbot.com/interfaces-part-2/这是介绍接口的第二篇。如果你还没有阅读第一篇,可以在这里阅读。使用指针接收器和值接收器实现接口我们在第1部分中讨论的所有示例接口都是使用值接收器实现的。还可以使用指针接收器实现接口。在使用指针接收器实现接口时需要注意一些细微之处。让我们使用以下程序来了解。package mainimport "fm...

2019-01-13 19:59:12

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。