文章 2023-10-20 来自:开发者社区

Golang 语言怎么使用 Viper 管理配置信息?(下)

使用 FlagsViper 能够绑定到 flags。具体来说,viper 支持 Cobra 库中使用的 Pflags。与 BindEnv 一样,在调用绑定方法时,不会设置该值,而是在访问绑定方法时设置该值。这意味着您可以尽早绑定,即使在 init() 函数中。对于单个 Flag,BindPFlag() 方法提供此功能。例如:serverCmd.Flags().Int("port", 1138, ....

文章 2023-10-20 来自:开发者社区

Golang 语言怎么使用 Viper 管理配置信息?(上)

01什么是 Viper?Viper 是适用于 Go 应用程序(包括 Twelve-Factor App)的完整配置解决方案。它被设计为在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持:设置默认值可以读取 JSON,TOML,YAML,HCL,envfile 和 Java properties 格式的配置文件实时监控和重新读取配置文件(可选)读取环境变量中的配置信息读取远程配置系统(....

文章 2023-10-20 来自:开发者社区

Golang 语言的内存模型

01介绍Go 内存模型可以保证一个 goroutine 可以读取在不同 goroutine 中修改同一指定变量的值。02建议程序中的一个 goroutine 修改的数据,如果同时有其它 goroutine 读取该数据,则需要保证程序串行化执行。为了保证程序串行化执行,我们需要使用 channel 通道操作或其他同步原语(例如 sync 和 sync/atomic 包中的原语)来保护数据。03先行....

文章 2023-10-20 来自:开发者社区

Golang 语言标准库 context 包控制 goroutine

01介绍在 Go1.7 中,标准库加入了 context 包,context 包定义了一个 Context (上下文)类型,可以在 Api 之间和进程之间传递信息,还提供了超时(timeout)和取消(cancel)机制。Go 标准库中,database/sql,net,net/http 等包中都使用了 Context。在 Go 应用开发中,一般用于请求链路中传递上下文信息,控制子 gorout....

文章 2023-10-20 来自:开发者社区

Golang 语言标准库 sync/atomic 包原子操作

01介绍我们已经介绍过 Mutex、RWMutex 等并发原语操作,如果您还没有阅读,请查看文末「推荐阅读」列表。本文我们介绍 sync/atomic 包提供的原子操作的方法,相比并发原语操作,使用原子操作会更轻量。我们知道,相同代码在不同 CPU 架构中编译的结果可能不同,sync/atomic 包提供的原子操作的方法帮我们解决了这个问题,所以如果您想保证原子操作,一定要使用 sync/ato....

文章 2023-10-20 来自:开发者社区

Golang 语言使用标准库 net/rpc/jsonrpc 包跨语言远程调用

01介绍Go 语言标准库 net/rpc 默认采用 encoding/gob 包编解码传输数据,gob 编解码方式仅适用于 Go 应用,如果需要跨语言远程调用,可以指定支持跨语言的其他编解码方式,比如 protobuf,或使用 net/rpc 的子包 net/rpc/jsonrpc,它支持JSON-RPC 1.0,通过 json 格式传输数据。02Go 语言 net/rpc/jsonrpc 标准....

Golang 语言使用标准库 net/rpc/jsonrpc 包跨语言远程调用
文章 2023-10-20 来自:开发者社区

Golang语言标准库 sync 包的 Once 怎么使用?

01介绍在 Go 语言中,sync 包有一个 Once 类型,官方文档介绍 Once 是一个只执行一次操作的对象。所以,Once 一般用于并发执行,但只需初始化一次的共享资源。02基本用法Once 的使用也非常简单,Once 只有一个 Do 方法,接收一个无参数无返回值的函数类型的参数 f,不管调用多少次 Do 方法,参数 f 只在第一次调用 Do 方法时执行。代码示例:通过阅读示例代码,可以发....

Golang语言标准库 sync 包的 Once 怎么使用?
文章 2023-10-20 来自:开发者社区

Golang 语言 Web 框架 beego v2 之读操作(下)

04条件查询上一小节介绍的查询方式,都没有使用查询条件,本小节内容介绍条件查询,在介绍条件查询之前,先来介绍一下 expr,expr 是 QuerySeter 用于描述字段和描述sql 操作符的一种表达方式。字段组合的前后顺序依照表的关系,比如 User 表拥有 Profile 的外键,那么对 User 表查询对应的 Profile.Age 为条件,则使用 Profile__Age。注意,字段的....

文章 2023-10-20 来自:开发者社区

Golang 语言 Web 框架 beego v2 之读操作(上)

01介绍beego ORM 是一个强大的 Go 语言 ORM 框架。她的灵感主要来自 Django ORM 和 SQLAlchemy。已支持的数据库驱动有MySQL、PostgreSQL 和 Sqlite3。beego v2.x 和 beego v1.x 在 ORM 上的区别是,beego v2.x 的 ORM 对象被设计为无状态的,它是线程安全的,建议大家在使用时,一个数据库只对应一个 ORM....

文章 2023-10-20 来自:开发者社区

Golang 语言 Web 框架 beego v2 之写操作

01介绍beego ORM 是一个强大的 Go 语言 ORM 框架。她的灵感主要来自 Django ORM 和 SQLAlchemy。已支持的数据库驱动有MySQL、PostgreSQL 和 Sqlite3。beego v2.x 和 beego v1.x 在 ORM 上的区别是,beego v2.x 的 ORM 对象被设计为无状态的,它是线程安全的,建议大家在使用时,一个数据库只对应一个 ORM....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

相关镜像