七叶笔记 » golang编程 » 模仿 Java 的 Spring 全家桶实现的一套 GoLang 的应用程序框架

模仿 Java 的 Spring 全家桶实现的一套 GoLang 的应用程序框架

Go-Spring 项目简介

Go- Spring 是模仿 Java 的 Spring 全家桶实现的一套 GoLang 的应用程序框架,遵循“习惯优于配置”的原则,提供了依赖注入、自动配置、开箱即用、丰富的第三方类库集成等功能,能够让程序员少写很多的样板代码。

完整的 go-spring 项目一共包含 6 个模块,当前模块仅实现了基础的 IOC 容器的能力,该模块可以独立使用,但是配合其他模块才能使得效率最大化。

所有模块的列表:

1、程序启动框架

AppRunner

2、核心功能模块

GoSpring

3、启动器核心组件

GoSpringBoot

4、开源 微服务 组件

GoSpringCloud

5、多个项目启动器

GoSpringBootStarter

GoSpringCloudStarter

项目特点

  1. 面向接口编程
  2. 面向模块化编程
  3. 简单的启动器框架
  4. 依赖注入、属性注入
  5. 项目依赖管理
  6. 简化的 http test 框架
  7. 支持多种配置文件格式
  8. 支持多环境配置文件
  9. 统一的代码风格
  10. 自动加载配置、模块
  11. 丰富的示例,极易上手

代码规范

  1. 一个单词的包名采用小写格式(Maybe)
  2. 多个单词的包名使用首字母大写的格式
  3. HTTP 接口强制使用 POST 方法
  4. 业务代码允许 panic 中断请求
  5. 返回值包含详细的错误信息 …

实现原理

  1. AppRunner
  2. SpringContext
  3. Bean 管理
  4. Bean 注入,autowire
  5. 属性注入,value
  6. SpringBootApplication,适配 AppRunner
  7. 启动器框架,Starters
  8. 常用模块简介,Web、 Redis 、Mysql 等
  9. Spring-Message 框架
  10. Spring-Check + RPC 框架

未来规划

  1. 继承 Java Spring 全家桶的设计原则,但不照搬照抄,适应 Go 语言
  2. 形成滴滴的 Go 项目和代码规范
  3. 完整支持微服务框架,监控、日志跟踪等
  4. dubbo 协议、框架打通
  5. 创建新项目的工具软件
  6. 探索无服务器架构支持
  7. 管理端点 endpoint
  8. 更丰富的 debug 信息输出
  9. 支持用户配置覆盖模块默认配置
  10. 支持禁用特定的自动配置
  11. 定制 banner
  12. 属性支持 占位符 ,松散绑定等高级特性 …

开源地址:

 

更多更优质的资讯,请关注我,你的支持会鼓励我不断分享更多更好的优质文章。

相关文章