github.com/zly-app/zapp@v1.3.3/plugin/apollo_provider/usage.go (about)

     1  package apollo_provider
     2  
     3  import (
     4  	"github.com/zly-app/zapp"
     5  	"github.com/zly-app/zapp/config"
     6  	"github.com/zly-app/zapp/core"
     7  	"github.com/zly-app/zapp/plugin"
     8  )
     9  
    10  // 提供者名
    11  const ProviderName = "apollo"
    12  
    13  // 默认插件类型
    14  const DefaultPluginType core.PluginType = "apollo_provider"
    15  
    16  // 当前服务类型
    17  var nowPluginType = DefaultPluginType
    18  
    19  // 设置插件类型, 这个函数应该在 zapp.NewApp 之前调用
    20  func SetPluginType(t core.PluginType) {
    21  	nowPluginType = t
    22  }
    23  
    24  // 启用插件, 用于设置配置观察的提供者
    25  func WithPlugin(setDefaultProvider ...bool) zapp.Option {
    26  	plugin.RegisterCreatorFunc(nowPluginType, func(app core.IApp) core.IPlugin {
    27  		p := NewApolloProvider(app)
    28  		config.RegistryConfigWatchProvider(ProviderName, p) // 注册提供者
    29  		if len(setDefaultProvider) > 0 && setDefaultProvider[0] {
    30  			config.SetDefaultConfigWatchProvider(p) // 设为默认
    31  		}
    32  		return p
    33  	})
    34  	return zapp.WithPlugin(nowPluginType)
    35  }