当前位置: 首页 > 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;由于传播…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇&#xff1a;Liunx环境下搭建PaddlePaddle 3.0基础环境&#xff08;Liunx Centos8.5安装Python3.10pip3.10&#xff09; 一&#xff1a;前言二&#xff1a;安装编译依赖二&#xff1a;安装Python3.10三&#xff1a;安装PIP3.10四&#xff1a;安装Paddlepaddle基础框架4.1…...

FOPLP vs CoWoS

以下是 FOPLP&#xff08;Fan-out panel-level packaging 扇出型面板级封装&#xff09;与 CoWoS&#xff08;Chip on Wafer on Substrate&#xff09;两种先进封装技术的详细对比分析&#xff0c;涵盖技术原理、性能、成本、应用场景及市场趋势等维度&#xff1a; 一、技术原…...

Java中栈的多种实现类详解

Java中栈的多种实现类详解&#xff1a;Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...

LINUX编译vlc

下载 VideoLAN / VLC GitLab 选择最新的发布版本 准备 sudo apt install -y xcb bison sudo apt install -y autopoint sudo apt install -y autoconf automake libtool编译ffmpeg LINUX FFMPEG编译汇总&#xff08;最简化&#xff09;_底部的附件列表中】: ffmpeg - lzip…...