Skip to content

Go-Spring把工程能力装进 Go

配置、依赖、生命周期与基础设施统一装配,让业务代码继续保持 Go 应有的简单、清晰和直接。

Go-Spring 水墨侠客
配置管理IoC 容器生命周期HTTP 服务结构化日志Starter 生态

Less plumbing, more product

服务变复杂,业务代码不必跟着变乱

真实的 Go 服务不只有 Handler。配置加载、组件初始化、依赖装配、启动顺序和优雅退出,会一点点挤进每个项目。

Go-Spring 把这些重复问题收拢到一致的应用模型中。你仍然编写普通 Go 代码,只是不再手工编排每一块基础设施。

为什么需要 Go-Spring
main.goGo
package main
 
import "go-spring.org/spring/gs"
 
func init() {
    gs.Provide(&UserService{})
    gs.Provide(&UserHandler{})
}
 
func main() {
    gs.Run()
}
application started:9090
01

启动时装配运行时保持直接

02

统一生命周期启动与退出有序可控

One application model

一套模型,覆盖服务的工程骨架

能力彼此协作,而不是一组互不相关的工具。配置决定装配,容器管理依赖,应用上下文协调完整生命周期。

Spring inspired, Go designed

借鉴 Spring 的工程经验,但不把 Java 搬进 Go

保留

成熟的服务组织方式

  • 01配置驱动的应用装配
  • 02清晰的组件边界与依赖
  • 03可管理的完整生命周期
  • 04可复用的基础设施集成
舍弃

不适合 Go 的复杂度

  • ×运行时动态代理与扫描
  • ×层层包装的抽象体系
  • ×隐藏执行路径的黑盒魔法
  • ×为框架而框架的设计

Ecosystem

从核心框架开始,
按需扩展

核心保持克制,日志、工具链和基础设施集成独立演进。只引入当前服务真正需要的部分。

Ready to build

让下一个 Go 服务,
从清晰的工程骨架开始

从一个可运行的最小应用开始,再逐步接入配置、IoC、HTTP 与常用组件。