当前位置: 首页 > news >正文

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
}

OnChange主要用于监听配置的变化。对于大部分依赖于文件系统的实现来说,都不支持。

Sub类似与GetSection,都是尝试返回配置的一部分。所不同的是,GetSection将结果组织成map,而Sub将结果组织成Config实例;

 参考文件:

https://www.fansimao.com/847178.html

https://www.xichangyou.com/847199.html

相关文章:

beego的模块篇 - config自定义文件配置

加载自定义配置到beego.AppConfig中可以配置&#xff1a;Beego框架 app.conf配置参数及环境配置-CSDN博客 1. 文件配置 目前支持解析的文件格式有 ini、json、xml、yaml 安装依赖库&#xff1a; go get github.com/beego/beego/v2/core/config 1.1 ini文件配置使用 配置文…...

YOLOv5-第Y2周:训练自己的数据集

YOLOv5-第Y2周&#xff1a;训练自己的数据集 YOLOv5-第Y2周&#xff1a;训练自己的数据集一、前言二、我的环境三、准备数据集四、运行 split_train_val.py 文件五、生成 train.txt、test.txt、val.txt 文件六、创建ab.yaml文件七、开始使用自己的数据集训练八、总结 YOLOv5-第…...

解决fxml图标无法显示

原文地址&#xff1a;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&#xff1a; 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 文件掩码&#xff08;umask&#xff09;4 总结 1 前言 阅读本篇文章&#xff0c;你将了解Linux的目录结构&#xff0c;用户与文件的关系&#xff0c;以及文件掩码的作用。为了方便大家理解&#xff0c;本文将通过实例进行演示&#xf…...

JS -- 正则表达式教程

1 概念 ECMAScript 通过 RegExp 类型支持正则表达式。 2 写法 2.1 类似 Perl 的简写语法&#xff1a; let pattern /a/g let pattern2 /a/i2.2 构造函数创建&#xff1a; let pattern new RegExp(a, g) let pattern new RegExp(a, i)上面两种是等价的正则表达式 3 修…...

详细介绍IP 地址、网络号和主机号、ABC三类、ip地址可分配问题、子网掩码、子网划分

1、 IP 地址: 网络之间互连的协议&#xff0c;是由4个字节(32位二进制)组成的逻辑上的地址。 将32位二进制进行分组&#xff0c;分成4组&#xff0c;每组8位(1个字节)。【ip地址通常使用十进制表示】ip地址分成四组之后&#xff0c;在逻辑上&#xff0c;分成网络号和主机号 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播放示例

目录 使用带研发角色的账号&#xff0c;在app端设置下分辨率 &#xff1a; 4k 点播 ffplay播放看下详细的参数 使用带研发角色的账号&#xff0c;在app端设置下分辨率 &#xff1a; 4k 点播 ffplay播放看下详细的参数...

PMIC 基础知识浅析(四)

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

gin+gorm增删改查目录框架

从网上找资料,发现,很多都是直接的结构 路由&#xff0c;后端的controller层&#xff0c;还有model层&#xff0c;都是放在了同一个main.go文件中&#xff0c;如果写项目的话&#xff0c;还得自己去拆文件&#xff0c;拆代码&#xff0c;经过查询和自己总结&#xff0c;下面放…...

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应该如何导入&#xff08;import&#xff09;模块及包》梳理 1. 整体概念基本介绍 …...

极客时间-《罗剑锋的 C++ 实战笔记》文章笔记 + 个人思考

极客时间-《罗剑锋的 C 实战笔记》文章笔记 个人思考 语言特性06 | auto/decltype&#xff1a;为什么要有自动类型推导&#xff1f; 语言特性 06 | auto/decltype&#xff1a;为什么要有自动类型推导&#xff1f; auto 在C 11 引入。 为什么说C是静态强类型语言&#xff1f…...

Pytorch 对比TensorFlow 学习:Day 17-18: 循环神经网络(RNN)和LSTM

Day 17-18: 循环神经网络&#xff08;RNN&#xff09;和LSTM 在这两天的学习中&#xff0c;我专注于理解循环神经网络&#xff08;RNN&#xff09;和长短期记忆网络&#xff08;LSTM&#xff09;的基本概念&#xff0c;并学习了它们在处理序列数据时的应用。 1.RNN和LSTM基础…...

Java基础 - 07 Set之Set,AbstractSet

上边几篇&#xff0c;我们对java的List集合进行相关介绍&#xff0c;了解了关于List集合下的相关实现类的方法或者接口。 自本篇开始&#xff0c;将围绕java的Set进行介绍&#xff0c;也是对我java知识的巩固吧&#xff0c;处理业务越多&#xff0c;发现自己对基础知识的薄弱&…...

C++17新特性(三)新的标准库组件

1. optional 在编程时&#xff0c;我们经常会遇到可能会返回/传递/使用一个确定类型对象的场景。也就是说&#xff0c;这个对象可能有一个确定类型的值也可能没有任何值。因此&#xff0c;我们需要一种方法来模拟类似指针的语义&#xff1a;通过nullptr表示指针为空。解决方法…...

Spring Boot入门

SpringBoot介绍 什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其中“Boot”的意思就是“引导”&#xff0c;Spring Boot 并不是对 Spring 功能上的增强&#xff0c;而是提供了一种快速开发 Spring应用的方式。 特点 • 嵌入的 Tomcat&#xff0c…...

【LeetCode】数学精选4题

目录 1. 二进制求和&#xff08;简单&#xff09; 2. 两数相加&#xff08;中等&#xff09; 3. 两数相除&#xff08;中等&#xff09; 4. 字符串相乘&#xff08;中等&#xff09; 1. 二进制求和&#xff08;简单&#xff09; 从字符串的右端出发向左做加法&#xff0c;…...

【漏洞复现】Hikvision SPON IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)

文章目录 前言声明一、系统简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 Hikvision Intercom Broadcasting System是中国海康威视&#xff08;Hikvision&#xff09;公司的一个对讲广播系统。 声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; 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%精准识别

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

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...

Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解

文章目录 一、开启慢查询日志&#xff0c;定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...