Skip to content

concepts

GStones edited this page Jul 26, 2024 · 7 revisions

基本概念

ParamsObject

  • ParamsObjectmoke-kit的一个基本单元,它由fx.Provide封装,可以是一个Service,Settings,Client,一般位于于服务的./pkg/{name}fx文件中。

  • 每个ParamsObject 包含两个结构:

    • XXXParams用于其他ParamsObject注入使用
    • XXXResult用于当前ParamsObject对外暴露指定的对象或者字段配置
    • XXXParamsXXXResult字段通过tag: name对应
  • 你可以在任何的ParamsObject中注入其他的ParamsObjectXXXParams就可以直接使用它们。前提是你需要在Main容器 中初始化注入的ParamsObject.

  • moke-kit 提供了一些内置的ParamsObject,启动时会自动注入到程序中,你可以通过设置相关环境变量来控制它们的行为, 另外还提供了一些通用型的ParamsObject,你可以根据需求选择性的注入到你的程序中。

Module

Module 是一组高内聚的ParamsObject的集合,它由fx.Module封装,例如: 一个ServiceModule 它可能包含ServiceSettingsClientParamsObject

Main(容器)

Main 是一个依赖注入的容器,它由fxmain.Main封装,你可以在这里注入你需要的ParamsObject 或者 Module 来初始化他们。当然你可以定义多个不同的Main容器来封装不同粒度的服务以适应不同的业务场景(适用于微服务开发)。比如:

  • 封装一个注入所有服务的Main容器方便本地开发
  • 按服务类型封装多个Main方便部署测试环境的单机多服务
  • 每个服务封装单独一个Main只注入自己的Module从而实现微服务化

下一步

Clone this wiki locally