- Notifications
You must be signed in to change notification settings - Fork7
盘古,一个受SpringBoot的启发而创建Golang应用程序快速开发框架,尽量让使用者关注业务而不是底层框架;同时,尽量添加一些华丽而且实用的功能来方便开发者的使用。支持的功能有:1、类Springboot高生产力开发框架;2、配置文件无缝切换(支持JSON、YAML、TOML、XML以及环境变量支持和默认值配置支持);3、丰富的插件支持(Web、Http Client、MQTT、Redis、gRPC等一系统生产力集合框架);4、线程安全;5、高度可配置;以及其它一系统旨在提高生产力的功能集合
License
NotificationsYou must be signed in to change notification settings
pangum/pangu
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
一个Golang应用程序快速开发框架,有以下特性
- 快速开发
- 内置配置文件加载
Json
/Jsonc
/Json5
XML
- 其它
YAML
,通过引入github.com/pangum/yaml
支持TOML
,通过引入github.com/pangum/toml
支持- 携程
Apollo
,通过引入github.com/pangum/apollo
支持 - 阿里
Nacos
,通过引入github.com/pangum/nacos
支持
- 很方便定制自己的配置文件加载器
- 零配置,可完全通过
环境变量
完成配置 - 支持配置文件覆盖
- 支持按
模块
划分配置文件,比如可以按如下模式划分配置文件application.json/jsonc/xml/toml/yaml/yml
,提供应用程序本身需要的相关配置logging.json/jsonc/xml/toml/yaml/yml
,提供日志相关配置database.json/jsonc/xml/toml/yaml/yml
,提供数据库相关配置grpc.json/jsonc/xml/toml/yaml/yml
,提供gRPC
相关配置...
其它配置文件- 所有配置文件格式可以混用,比如配置可以是
json
、jsonc
、json5
、yaml
、yml
、toml
等任意格式,只要正确的引入了相应的加载器
- 支持个性化配置文件编写,对于任何一个配置字段,可以有如下形式(比如配置项是
logggingLevel
)原始配置项
即loggingLevel
下划线形式
即logging_level
中划线形式
即logging-level
- 内置强大的数据验证
- 内置强大的且非常多的数据验证器
- 很方便的定制自己的数据验证器
- 强大的扩展功能
- 强大的配置功能
- 徽标
- 帮助信息
- 命令行
- 一切可配置点皆可配置
- 线程安全
- 内置依赖注入
- 语义化
- 方便使用
- 多态行为,同一个调用在不同的场景下有不同的意义
Pangu
使用非常简单,只需要定义两部分代码启动方法
和启动器
以及依赖关系
,对于依赖关系
- 可以没有依赖,如果没有,就不需要处理依赖
- 一般稍微大型一点的系统都会有复杂的依赖关系,而这正是
盘古
框架的强项 - 对于没有依赖或者依赖非常少的项目,使用
盘古
反而会使代码变多,这个需要大家酌情考虑
启动方法
代码如下
package mainimport (`github.com/pangum/pangu``github.com/pangum/pangum`)funcmain() {panic(pangu.New(pangu.Named(`ziyunix`),pangu.Banner(`Ziyunix Server`,pangu.BannerTypeAscii), ).Run(newBootstrap))}
启动器
的代码如下
package maintypebootstrapstruct {application*pangu.Application}funcnewBootstrap(application*pangu.Application) pangu.Bootstrap {return&bootstrap{application:application, }}
依赖关系
建议像如下处理
package restimport (`github.com/pangum/pangu`)typeServerstruct {}funcnewServer(/* 如果有依赖,可以在这里增加依赖:api *Api */)*Server {returnnew(Server)}funcinit() {pangu.New().Dependencies(newServer,// 其它依赖// ...)}
Pangu
有非常多的配置项,请参看使用文档
- 基础项目实战代码
- 数据库操作
- 数据库迁移
- RESTFul接口
- 配置加载
- MQTT操作
About
盘古,一个受SpringBoot的启发而创建Golang应用程序快速开发框架,尽量让使用者关注业务而不是底层框架;同时,尽量添加一些华丽而且实用的功能来方便开发者的使用。支持的功能有:1、类Springboot高生产力开发框架;2、配置文件无缝切换(支持JSON、YAML、TOML、XML以及环境变量支持和默认值配置支持);3、丰富的插件支持(Web、Http Client、MQTT、Redis、gRPC等一系统生产力集合框架);4、线程安全;5、高度可配置;以及其它一系统旨在提高生产力的功能集合
Topics
Resources
License
Stars
Watchers
Forks
Packages0
No packages published