.

.

总体介绍

Alibaba/IOC-golang 是一款 Go 语言依赖注入框架,提供了一套完善的 IoC 容器。

适配于任何使用 Go 语言开发的场景,帮助开发者管理依赖对象,降低代码耦合度。在运维场景下,可以通过扩展框架自动注入的代理 AOP 层实现各种运维能力。

1 - 功能

IOC-golang 框架提供的能力
  • 依赖注入

    支持任何结构、接口的依赖注入,具备完善的对象生命周期管理机制。

    可以接管对象的创建、参数注入、工厂方法、参数来源等等,并拥有可扩展性。

  • 接口代理

    基于 AOP 的思路,为由框架接管的对象提供默认的接口代理层,在面向接口编程的情景下,可以在 业务无侵入 的前提下,使用基于结构代理 AOP 层扩展的丰富运维能力。例如接口查询,参数动态监听,方法粒度链路追踪,性能瓶颈分析,分布式场景下全链路方法粒度追踪等。

    • 监控
    • 日志采集
    • 链路追踪
    • 事务能力
  • 代码生成能力

    我们提供了代码生成工具,开发者可以通过注解的方式标注结构,从而便捷地生成结构注册代码、结构代理、结构专属接口等。

  • 可扩展能力

    支持被注入结构的扩展、自动装载模型的扩展、调试 AOP 层的扩展。

  • 丰富的预置组件

    提供覆盖主流中间件的预制对象,方便直接注入使用。

2 - 设计理念

IOC-golang 框架设计理念
  • 通过标签与配置文件,实现依赖注入和参数读取

  • 通过注解,实现注册代码自动生成

  • 通过注入接口代理,实现 AOP 可扩展调试层