是模仿 Java 的 Spring 全家桶实现的一套 GoLang 的应用程序框架,仍然遵循“习惯优于配置”的原则,提供了依赖注入、自动配置、开箱即用、丰富的第三方类库集成等功能,能够让程序员少写很多的样板代码。
完整的 go-spring 项目一共包含 6 个模块,当前模块仅实现了基础的 IOC 容器的能力,该模块可以独立使用,但是配合其他模块才能使得效率最大化。其他模块发布在 https://github.com/go-spring 仓库下。下面是所有模块的列表:
1、程序启动框架
AppRunner
2、核心功能模块
GoSpring
3、启动器核心组件
GoSpringBoot
4、开源微服务组件
GoSpringCloud
5、多个项目启动器
GoSpringBootStarter
GoSpringCloudStarter
- 面向接口编程
- 面向模块化编程
- 简单的启动器框架
- 依赖注入、属性注入
- 项目依赖管理
- 简化的 http test 框架
- 支持多种配置文件格式
- 支持多环境配置文件
- 统一的代码风格
- 自动加载配置、模块
- 丰富的示例,极易上手
- 一个单词的包名采用小写格式(Maybe)
- 多个单词的包名使用首字母大写的格式
- HTTP 接口强制使用 POST 方法
- 业务代码允许 panic 中断请求
- 返回值包含详细的错误信息 …
- AppRunner
- SpringContext
- Bean 管理
- Bean 注入,autowire
- 属性注入,value
- SpringBootApplication,适配 AppRunner
- 启动器框架,Starters
- 常用模块简介,Web、Redis、Mysql 等
- Spring-Message 框架
- Spring-Check + RPC框架
- 继承 Java Spring 全家桶的设计原则,但不照搬照抄,适应 Go 语言
- 形成滴滴的 Go 项目和代码规范
- 完整支持微服务框架,监控、日志跟踪等
- 和 dubbo 协议、框架打通
- 创建新项目的工具软件
- 探索无服务器架构支持
- 管理端点 endpoint
- 更丰富的 debug 信息输出
- 支持用户配置覆盖模块默认配置
- 支持禁用特定的自动配置
- 定制 banner
- 属性支持占位符,松散绑定等高级特性 …
TODO
TODO
如何成为外部贡献者? 提交有意义的PR,并被采纳。
This is not an official Didi product (experimental or otherwise), it is just code that happens to be owned by Didi.