github.com/zly-app/zapp@v1.3.3/config/watch_example/example_provider/usage.go (about)

     1  package example_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 DefaultPluginType core.PluginType = "example_watch_provider"
    12  
    13  // 当前服务类型
    14  var nowPluginType = DefaultPluginType
    15  
    16  // 设置插件类型, 这个函数应该在 zapp.NewApp 之前调用
    17  func SetPluginType(t core.PluginType) {
    18  	nowPluginType = t
    19  }
    20  
    21  // 启用插件
    22  func WithPlugin(setDefaultProvider ...bool) zapp.Option {
    23  	plugin.RegisterCreatorFunc(nowPluginType, func(app core.IApp) core.IPlugin {
    24  		p := NewExamplePlugin(app)
    25  		config.RegistryConfigWatchProvider("example_watch_provider", p) // 注册提供者
    26  		if len(setDefaultProvider) > 0 && setDefaultProvider[0] {
    27  			config.SetDefaultConfigWatchProvider(p) // 设为默认
    28  		}
    29  		return p
    30  	})
    31  	return zapp.WithPlugin(nowPluginType)
    32  }