beego的模块篇 - config自定义文件配置
加载自定义配置到beego.AppConfig中可以配置:Beego框架 app.conf配置参数及环境配置-CSDN博客
1. 文件配置
目前支持解析的文件格式有 ini、json、xml、yaml
安装依赖库:
go get github.com/beego/beego/v2/core/config
1.1 ini文件配置使用
配置文件:
appname="beego"
[demo]
key1 = "asta"
key2 = "xie"
首先初始化一个解析器对象,然后获取数据,ini 配置文件支持 section 操作,key通过 section::key
的方式获取。
import ("fmt""github.com/astaxie/beego/config"
)func main() {//初始化一个解析器对象iniconf, err := config.NewConfig("ini", "conf/testini.conf")if err != nil {fmt.Println(err)return}//通过key获取数据appname := iniconf.String("appname")//通过 section::key 的方式获取key1 := iniconf.String("demo::key1")fmt.Println(appname, key1)
}
打印信息:
PS C:\Users\leell\go\src\quickstart> go run test.go
beego asta
解析器对象支持的函数有如下:
- Set(key, val string) error
- String(key string) string
- Int(key string) (int, error)
- Int64(key string) (int64, error)
- Bool(key string) (bool, error)
- Float(key string) (float64, error)
- DIY(key string) (interface{}, error)
1.2 json配置文件的使用
配置文件:
{"appname": "beego","demo": {"key1": "asta","key2": "xie"}
}
与ini一样的解析,首先初始化一个解析器对象,然后获取数据,ini 配置文件支持 section 操作,key通过 section::key
的方式获取。
import ("fmt""github.com/astaxie/beego/config"
)func main() {//初始化一个解析器对象iniconf, err := config.NewConfig("json", "conf/testini.json")if err != nil {fmt.Println(err)return}//通过key获取数据appname := iniconf.String("appname")//通过 section::key 的方式获取key1 := iniconf.String("demo::key1")fmt.Println(appname, key1)
}
打印信息:
PS C:\Users\leell\go\src\quickstart> go run test.go
beego asta
1.3 xml配置文件的使用
使用xml 或者 yaml 驱动就需要手工安装引入包
go get -u github.com/astaxie/beego/config/xml
配置文件:
<config><appname>beego</appname><demo><key1>asta</key1><key2>xie</key2></demo>
</config>
代码获取配置:
import ("fmt""github.com/astaxie/beego/config"_ "github.com/astaxie/beego/config/xml"
)func main() {//初始化一个解析器对象iniconf, err := config.NewConfig("xml", "conf/testini.xml")if err != nil {fmt.Println(err)return}//通过key获取数据appname := iniconf.String("appname")//通过 section::key 的方式获取key1 := iniconf.String("demo::key1")fmt.Println(appname, key1+"==")
}
打印信息:
PS C:\Users\leell\go\src\quickstart> go run test.go
beego ==
通过打印信息可以看出xml貌似不支持section
1.4 yaml配置文件的使用
需要引入三方包 yaml.v2 - gopkg.in/yaml.v2
2 解析器对象支持的函数
// Configer 定义如何从配置原始数据中获取和设置值的接口。
type Configer interface {// Set 设置指定键的值。// 对于 INI 类型,支持在键中使用 section::key 格式。Set(key, val string) error// String 获取指定键的字符串值。// 对于 INI 和 JSON 类型,支持在键中使用 section::key 格式。String(key string) (string, error)// Strings 获取指定键的字符串切片。Strings(key string) ([]string, error)// Int 获取指定键的整数值。// 对于 INI 和 JSON 类型,支持在键中使用 section::key 格式。Int(key string) (int, error)// Int64 获取指定键的 int64 值。// 对于 INI 和 JSON 类型,支持在键中使用 section::key 格式。Int64(key string) (int64, error)// Bool 获取指定键的布尔值。// 对于 INI 和 JSON 类型,支持在键中使用 section::key 格式。Bool(key string) (bool, error)// Float 获取指定键的浮点数值。// 对于 INI 和 JSON 类型,支持在键中使用 section::key 格式。Float(key string) (float64, error)// DefaultString 获取指定键的字符串值,如果键不存在则返回默认值。DefaultString(key string, defaultVal string) string// DefaultStrings 获取指定键的字符串切片,如果键不存在则返回默认值。DefaultStrings(key string, defaultVal []string) []string// DefaultInt 获取指定键的整数值,如果键不存在则返回默认值。DefaultInt(key string, defaultVal int) int// DefaultInt64 获取指定键的 int64 值,如果键不存在则返回默认值。DefaultInt64(key string, defaultVal int64) int64// DefaultBool 获取指定键的布尔值,如果键不存在则返回默认值。DefaultBool(key string, defaultVal bool) bool// DefaultFloat 获取指定键的浮点数值,如果键不存在则返回默认值。DefaultFloat(key string, defaultVal float64) float64// DIY 返回原始值DIY(key string) (interface{}, error)// GetSection 获取指定 section 的键值对。GetSection(section string) (map[string]string, error)// Unmarshaler 将配置解码到指定对象。Unmarshaler(prefix string, obj interface{}, opt ...DecodeOption) error// Sub 返回一个子配置,根据指定的键前缀。Sub(key string) (Configer, error)// OnChange 注册配置项变更时的回调函数。OnChange(key string, fn func(value string))// SaveConfigFile 保存配置到指定文件。SaveConfigFile(filename string) error
}
1 OnChange
主要用于监听配置的变化。对于大部分依赖于文件系统的实现来说,都不支持。
2 Sub
类似与GetSection
,都是尝试返回配置的一部分。所不同的是,GetSection
将结果组织成map
,而Sub
将结果组织成Config
实例;
参考文件:
https://www.fansimao.com/847178.html
https://www.xichangyou.com/847199.html
相关文章:
beego的模块篇 - config自定义文件配置
加载自定义配置到beego.AppConfig中可以配置:Beego框架 app.conf配置参数及环境配置-CSDN博客 1. 文件配置 目前支持解析的文件格式有 ini、json、xml、yaml 安装依赖库: go get github.com/beego/beego/v2/core/config 1.1 ini文件配置使用 配置文…...

YOLOv5-第Y2周:训练自己的数据集
YOLOv5-第Y2周:训练自己的数据集 YOLOv5-第Y2周:训练自己的数据集一、前言二、我的环境三、准备数据集四、运行 split_train_val.py 文件五、生成 train.txt、test.txt、val.txt 文件六、创建ab.yaml文件七、开始使用自己的数据集训练八、总结 YOLOv5-第…...
解决fxml图标无法显示
原文地址:https://www.myjinji.top/articles/2023/10/11/1697033367492.html 代码正确无法显示 <Button fx:id"blockButton" onAction"#handleBlockButtonClick"><graphic><FontIcon iconLiteral"win10-add-shopping-cart…...

React Store及store持久化的使用
1.安装 npm insatll react-redux npm install reduxjs/toolkit npm install redux-persist2. 使用React Toolkit创建counterStore并配置持久化 store/modules/counterStore.ts: import { createSlice } from reduxjs/toolkit// 定义状态类型 interface Action {…...
Hive添加第三方Jar包方式总结
一、在 Hive Shell中加入—add jar hdfs dfs -put HelloUDF-1.0.jar /tmp beeline -u "jdbc:hive2://test.bigdata.com:10000" -n "song" -p "" add jar hdfs:///tmp/HelloUDF-1.0.jar; create function HelloUDF as org.example.HelloUDF USIN…...

Linux用户与文件的关系和文件掩码(umask)的作用
文章目录 1 前言2 Linux用户与文件的关系3 文件掩码(umask)4 总结 1 前言 阅读本篇文章,你将了解Linux的目录结构,用户与文件的关系,以及文件掩码的作用。为了方便大家理解,本文将通过实例进行演示…...
JS -- 正则表达式教程
1 概念 ECMAScript 通过 RegExp 类型支持正则表达式。 2 写法 2.1 类似 Perl 的简写语法: let pattern /a/g let pattern2 /a/i2.2 构造函数创建: let pattern new RegExp(a, g) let pattern new RegExp(a, i)上面两种是等价的正则表达式 3 修…...

详细介绍IP 地址、网络号和主机号、ABC三类、ip地址可分配问题、子网掩码、子网划分
1、 IP 地址: 网络之间互连的协议,是由4个字节(32位二进制)组成的逻辑上的地址。 将32位二进制进行分组,分成4组,每组8位(1个字节)。【ip地址通常使用十进制表示】ip地址分成四组之后,在逻辑上,分成网络号和主机号 2…...

滚动菜单+图片ListView
目录 Fruit.java FruitAdapter MainActivity activity_main.xml fruit.xml 整体结构 Fruit.java public class Fruit {private String name;private int imageId;public Fruit(String name, int imageId) {this.name name;this.imageId imageId;}public String getNam…...

【4k】4k的webrtc播放示例
目录 使用带研发角色的账号,在app端设置下分辨率 : 4k 点播 ffplay播放看下详细的参数 使用带研发角色的账号,在app端设置下分辨率 : 4k 点播 ffplay播放看下详细的参数...

PMIC 基础知识浅析(四)
PMIC 后端研究现状: 现今针对便携式移动平台的电源管理芯片仍以传统分离型 PMIC为主。 根据后端设计的特点,传统分离型 PMIC 又可分三大类。 控制芯片与开关 MOSFET 分离型,MOSFET 外置于PCB上,芯片仅提供智能控制功能。 此类IC…...

gin+gorm增删改查目录框架
从网上找资料,发现,很多都是直接的结构 路由,后端的controller层,还有model层,都是放在了同一个main.go文件中,如果写项目的话,还得自己去拆文件,拆代码,经过查询和自己总结,下面放…...
python进阶(二)导入import 机制 | 导入import 用法 工作原理全解析
文章目录 1. 整体概念基本介绍1.1 包package1.2 模块 module 2 基本语法2.1 import直接使用2.2 from 及其用法3.1 as的用法 3 工作原理3.1 搜寻3.2 执行3.3 避免导入模块代码执行 参考《Python应该如何导入(import)模块及包》梳理 1. 整体概念基本介绍 …...
极客时间-《罗剑锋的 C++ 实战笔记》文章笔记 + 个人思考
极客时间-《罗剑锋的 C 实战笔记》文章笔记 个人思考 语言特性06 | auto/decltype:为什么要有自动类型推导? 语言特性 06 | auto/decltype:为什么要有自动类型推导? auto 在C 11 引入。 为什么说C是静态强类型语言?…...
Pytorch 对比TensorFlow 学习:Day 17-18: 循环神经网络(RNN)和LSTM
Day 17-18: 循环神经网络(RNN)和LSTM 在这两天的学习中,我专注于理解循环神经网络(RNN)和长短期记忆网络(LSTM)的基本概念,并学习了它们在处理序列数据时的应用。 1.RNN和LSTM基础…...

Java基础 - 07 Set之Set,AbstractSet
上边几篇,我们对java的List集合进行相关介绍,了解了关于List集合下的相关实现类的方法或者接口。 自本篇开始,将围绕java的Set进行介绍,也是对我java知识的巩固吧,处理业务越多,发现自己对基础知识的薄弱&…...
C++17新特性(三)新的标准库组件
1. optional 在编程时,我们经常会遇到可能会返回/传递/使用一个确定类型对象的场景。也就是说,这个对象可能有一个确定类型的值也可能没有任何值。因此,我们需要一种方法来模拟类似指针的语义:通过nullptr表示指针为空。解决方法…...
Spring Boot入门
SpringBoot介绍 什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其中“Boot”的意思就是“引导”,Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速开发 Spring应用的方式。 特点 • 嵌入的 Tomcat,…...

【LeetCode】数学精选4题
目录 1. 二进制求和(简单) 2. 两数相加(中等) 3. 两数相除(中等) 4. 字符串相乘(中等) 1. 二进制求和(简单) 从字符串的右端出发向左做加法,…...

【漏洞复现】Hikvision SPON IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)
文章目录 前言声明一、系统简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 Hikvision Intercom Broadcasting System是中国海康威视(Hikvision)公司的一个对讲广播系统。 声明 请勿利用文章内的相关技术从事非法测试,由于传播…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...